我正在使用 d3.layout.cloud.js 制作一个词云,源数据是一个包含单词及其权重的 .csv 表。现在我可以显示云中的所有单词,但不能将每个单词的权重放在其上自己的。有人在这里帮助我,非常感谢你们;p
<script type="text/javascript">
var fill = d3.scale.category20();
d3.csv("wordTfIdf.csv",function(data){
console.log(data);
var word = [];
var value = [];
for(i in data)
{
word[i] = data[i].word;
value[i] = data[i].tfidf;
}
console.log(word);
console.log(value);
d3.layout.cloud().size([960, 600])
**.words(word.map(function(d) {return {text: d, size: 10 + Math.random() * 50};}))**
.rotate(function() { return ~~(Math.random() * 2) * 90; })
.font("Impact")
.fontSize(function(d) { return d.size; })
.on("end", draw)
.start();
function draw(words) {
d3.select("body").append("svg")
.attr("width", 960)
.attr("height", 600)
.append("g")
.attr("transform", "translate(150,150)")
.selectAll("text")
.data(words)
.enter().append("text")
.style("font-size", function(d) { return d.size + "px"; })
.style("font-family", "Impact")
.style("fill", function(d, i) { return fill(i); })
.attr("text-anchor", "middle")
.attr("transform", function(d) {
return "translate(" + [d.x, d.y] + ")rotate(" + d.rotate + ")";
})
.text(function(d) { return d.text; });
}
});
</script>