2013-07-08 102 views
5

我使用http://www.jasondavies.com/wordcloud/#http%3A%2F%2Fen.wikipedia.org%2Fwiki%2F%7Bword%7D=cloud的d3示例構建自己的詞雲。d3詞雲 - 發生太多重疊

我所要做的就是根據單詞表示的對象的屬性,將某些顏色屬性添加到單詞中。

例如,有4個詞 - 美國,印度,英國和德國 - 我使用閾值來設置單詞的顏色 - 比方說,這更像是根據人口密度設置顏色。

但是,這並不會影響字體的大小 - 這可能表示國家的土地面積。

我的問題是,所有的單詞都互相重疊。

我不知道我會做錯什麼 - 看看這段代碼 - 我的'畫'功能。 我在這裏可能會做錯什麼?

draw: function(countries) { 
     var cctrplt = {BuOrPuRd: { 
      4: ["#9ebcda","#e32636","#08306b", "#ffbf00"] 
     }}; 
     var fillthr = 
      d3.scale.threshold() 
      .domain([2, 5, 10]) 
      .range(cctrplt.BuOrPuRd[4]); 
     d3.select("#ddTagCloudContentRoot").append("svg") 
      .attr("width", width) 
      .attr("height", height) 
      .append("g") 
      .attr("transform", "translate(300,300)") 
      .selectAll("text") 
      .data(countries) 
      .enter().append("text") 
      .style("font-size", function(d) { return (d.size) + "px"; }) 
      .style("font-family", "Impact") 
      .style("fill", function(k,i) { var ccode = colours_list[k.text]; return fillthr(ccode); }) 
      .attr("text-anchor", "middle") 
      .attr("transform", function(d) { 
       return "translate(" + [d.x, d.y] + ")"; 
      }) 
      .text(function(d) { return d.text; }); 
    } 

如果還有其他代碼需要分享 - 請告訴我。

謝謝。

回答

5

找到解決方案。我沒有使用rotate()函數調用,因爲我想要文本被水平放置。我認爲完全忽略電話會有所幫助。

似乎並非如此。所以我加旋轉(0)就是這樣。現在我得到一個好看的詞雲。

提示:我使用筆劃:黑色對文本樣式,這給了一個整潔的演示文稿。

+0

哦,我的上帝,你爲我節省了很多時間。有所有的ups。 –

+0

我已經使用旋轉(0),沒有幫助。 – dresh