2016-05-29 122 views
0

我目前正在創建一個條形圖,可以從d3直方圖獲取數據。d3直方圖和條形圖數據

創建直方圖是這樣的:

var binningThresholds = d3.range(getMinValue(rows, 'Model year'), getMaxValue(rows, 'Model year') + 2) 

var histogram = d3.layout.histogram() 
    .value(getModelYear) 
    .bins(binningThresholds) 
    (rows); 

我收到從CSV輸入行。我已經做了很多與輸入的東西,所以這工作正常。

直方圖現在是對象數組的數組。

當我現在想用這個histogram並添加一個酒吧,爲陣列中的每個指標的圖表,沒有錯誤顯示了和D3沒有任何grecttext標籤附加到DOM。

var histogramBars = histogramSvg.selectAll('g') 
    .data(histogram) 
    .enter() 
    .append('g'); 

histogramBars.append('rect'); 

histogramBars.append('text') 
    .text(function(d) { 
     return d.length; 
    }) 

我真的不知道爲什麼,有沒有人看到錯誤?

回答

2

請勿使用.selectAll('g').data...,我的猜測是在您的可視化中還有其他g元素,並且您正在選擇一些您並不想要的東西。相反,請執行如下操作:

var histogramBars = histogramSvg.selectAll('.myUniqueClass') 
    .data(histogram) 
    .enter() 
    .append('g') 
    .attr('class', 'myUniqueClass'); 
+0

謝謝,就是這樣。 – luuksen

+0

@Mark,即使刪除'.attr('class','myUniqueClass')',它的工作原理也是一樣的。 –

+1

@GerardoFurtado,它將用於初始'輸入'選擇。如果他需要處理更新或退出的情況,這將是必要的。 – Mark