2015-09-08 81 views
0

我正在玩各種D3圖表,對於這個特殊的例子,我似乎無法得到網格線顯示。我將它與一個類似的例子進行了比較,我已經在線上顯示,但我仍然無法理解它。這是我目前所擁有的jsfiddle在D3直方圖中不顯示網格線

我主要興趣所以這裏的水平網格線是當我添加y軸代碼:

var gy = svg.append('g') 
    .attr('class', 'y axis') 
    .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')') 
    .call(yAxis); 

gy.selectAll('g').filter(function(d) { 
    return d; 
}) 
.classed('minor', true); 

回答

0

您可以使用最小報價單位設置水平網格線的大小。寬度應與您的x軸相同寬度* -1:

var yAxis = d3.svg.axis() 
    .scale(yScale) 
    .tickFormat(formatNumber) 
    .tickSize(-width) 
    .ticks(3) 
    .orient('left'); 
+0

這很好用!你能解釋爲什麼寬度應該是X軸的寬度* -1嗎? – ddoria

+0

所以我不是100%肯定的技術性,但我相信默認情況下是從y開始並且走向左側。所以爲了讓它們向右移動,需要將它們發送到tick的負x座標空間中。對不起,如果我沒有解釋得好:) –

+0

不用擔心。如果這就是幕後的工作方式,那實際上是有道理的。再次感謝! – ddoria