我是D3的新手,正在研究链式转换的修改版本:http://bl.ocks.org/mbostock/3903818。
然而,我遇到的一个问题是强制y轴从0开始。通常,在声明其他变量但在转换函数的上下文中更改y域和范围属性时,这将是简单的修复,我遇到了问题。以下是代码:http://jsfiddle.net/maureenlinke/DCc6g/
我相信问题在这里:
x.domain(d3.extent(data,function(d){return d.date;}));
y.domain([
d3.min(homes, function(c) { return d3.min(c.values, function(v) { return v.price; }); }),
d3.max(homes, function(c) { return d3.max(c.values, function(v) { return v.price; }); })
]);
谢谢,
莫林
答案 0 :(得分:0)
您只需要修复域名:
var maxPrice = d3.max(homes, function(c) {
return d3.max(c.values, function(v) { return v.price; });
});
y.domain([0, maxPrice]);
答案 1 :(得分:0)
d3.extent函数以数组[min,max]的形式返回数据的最小/最大范围。
通常,您需要编写以下代码:
y.domain( d3.extent(homes, function(d) { return d.price; }) );
所以以下内容应该有效:
var yRange = d3.extent(homes, function(d) { return d.price; });
y.domain( [0, yRange[1] ); // Force the min to 0