来自 Json/array 的 d3.js Tag Cloud 大小的另一个问题?
var jWord = ["abc","def","ghi","jkl"];
var jCount = [2, 5, 3, 8];
d3.layout.cloud().size([650, 140])
.words(d3.zip(jWord, jCount).map(function(d) {
return {text: d[0], size: d[1]};
}))
.rotate(function() { return 0; })
//.rotate(function() { return ~~(Math.random() * 2) * 90; })
.fontSize(function(d) { return d.size; })
.on("end", draw)
.start();
现在我使用 jCount 的原始值作为 textsize。假设 jCount 可能会有所不同,我想设置一个大小范围(最小 10 像素到 50 像素)。
var maxCount = d3.max(jCount);
var s = d3.scale.linear().domain([10,50]),range([0, maxCount)]);
然后我变了
.words(d3.zip(jWord, jCount).map(function(d) {
return {text: d[0], size: s};
}))
我将“size:s”部分更改为许多其他可能猜到的形式,但它不起作用。我仍然熟悉 d3.js/jquery/svg 语法,所以现在我真的不知道如何设置它。请帮忙!