我希望扩大这本书的标题'在我的下面的数据集中,取决于'周数'他们一直在畅销书排行榜上......所以如果它是一本书的第一周就在名单上,那么这个标题将出现在18pt,如果是这本书的第20周就是标题(或该周的最大数量)标题将出现在72pt。
E.g。我的数据集:
var hardcover_fiction = [
{
title: "MISSING YOU",
author: "Harlan Coben",
rank: 1,
last: 0,
weeks: 1
},
{
title: "RAISING STEAM",
author: "Terry Pratchett",
rank: 2,
last: 0,
weeks: 20
}
];
E.g。我的D3代码:
.style("font-size", function(d) {
return textScale(d.weeks) + "px";
})
var textScale = d3.scale.linear()
.domain([1, d3.max(hardcover_fiction.weeks)]
.range([18, 72]);
我很难过......任何帮助都会非常感激! :)
答案 0 :(得分:1)
您未正确使用d3.max
。第一个参数必须是一个数组。第二个(可选)参数是一个从数组中的每个元素中提取相关值的函数。
通话d3.max(hardcover_fiction.weeks)
返回0,因为hardcover_fiction.weeks
不存在。你需要
d3.max(hardcover_fiction, function(d){return d.weeks;})
您的代码段的其余部分应该按预期工作。