2016-04-24 148 views
0

我正在用d3.js創建一個簡單的條形圖,它工作正常。 但是,當我嘗試在每個欄上顯示文本時,沒有任何反應。控制檯不返回任何錯誤,所以我無法理解問題。 我的代碼是here,我試圖顯示簡單的文字,如「你好」,但仍然沒有顯示出來。d3.js條形圖:.text不顯示

+0

您希望文本出現在哪裏,您希望它對於給定的條有什麼價值? –

+0

我想在每個欄的最後出現空格(freqData變量的屬性)的值。 – cecelia

+0

你有沒有嘗試過這個教程:http://alignedleft.com/tutorials/d3/making-a-bar-chart?我意識到教程有一個垂直而不是水平的圖表,但我希望它仍然有用。您試圖通過'rect'上的selectAll應用文本標籤,而不是'text'上的selectAll。 –

回答

0

問題:

追加文本,以在SVG一個rect元件。

解決方案:

追加文本到SVG或一組。

說明:

要附加您的文本的矩形。在控制檯中沒有任何內容會顯示爲錯誤,因爲沒有顯示錯誤,但文本不會顯示。

你必須創建一個變量文本:

var texts = svg.selectAll(".mytexts") 
          .data(data) 
          .enter() 
          .append("text"); 

,然後設置屬性:

texts.attr("class", "value") 
       .attr("x", function(d) { return widthScale(d.vacant); }) 
       .attr("y", heightScale.rangeBand()/2) 
       .attr("dx", -3) 
       .attr("dy", ".35em") 
       .attr("text-anchor", "end") 
       .text(function(d) { return format(d.vacant); }); 

不要忘了相應地改變CSS。

+0

非常好的解釋!太感謝了! 現在一切正常,我真的不知道如何將文本鏈接到rects變量和svg。 – cecelia

+0

不用擔心!爲了將文本鏈接到矩形,最好的方法是創建組(svg中的元素)。 –