2014-10-15 3 views
1

Я не могу получить мои тики, чтобы показать мой график на основе строки d3 svg на линии (маленькая строка, которая обычно отображается на осевых точках на x и ось у)Клещи, не показанные для многострочной диаграммы d3 svg

http://plnkr.co/edit/KvJHXM6bjSeEIsZUsXLk?p=preview

Я думаю, что, возможно, отсутствует возможность здесь

var xAxis = d3.svg.axis() 
    .scale(x) 
    .orient("bottom") 
    .ticks(4) 
    .tickFormat(function(d) { 
    var mmdd = d.getMonth() + '/' + d.getDate(); 
    var time = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds(); 
    return mmdd + " "+ time; 

    }) 
    .tickSize(1) 
    .tickPadding(8); 

var yAxis = d3.svg.axis() 
    .scale(y) 
    .tickSize(1) 
    .ticks(6) 
    .orient("left") 
    .tickPadding(20); 

Я попытался изменить несколько «тик» параметры, но я не могу понять, почему мои клещи отсутствуют на обоих оси x и y.

Любая помощь или указатели оценивается.

Спасибо

ответ

3

.tickSize(1) вызывает ваши тиков быть слишком скрытой (слишком мало), поэтому удалить его, и настройка по умолчанию 6.

Если вам нужно сделать осевую линию (path) сам по себе тоньше (я думаю, именно поэтому вы использовали параметр tickSize), лучше стилизовать с помощью некоторого CSS, например

.axis path, 
.axis line { 
    fill: none; 
    stroke: #000000; 
} 

я обычно предлагаю также с использованием shape-rendering: crispEdges; в CSS, но это на самом деле вызывает ось быть скрыты снова из-за вашего использования viewBox, который, кажется, портя дисплей немного здесь.

Кроме того, похоже, что вы рисуете каждую ось дважды - один раз в drawChart() и снова, когда вы cal; drawAxis() в конце drawChart. Я предлагаю удалить первый.

+0

спасибо. Это решило. Решенный plunkr, включающий ваши изменения - http://plnkr.co/edit/oFDpd6vQ9IizZNxC0GbI?p=preview. Я только рисую ось один раз. drawAxis вызывается только из drawChart. – user2789284

+0

Да. Ты прав. Он дважды отдавал ось. Еще раз спасибо за вашу помощь. – user2789284