【发布时间】:2014-11-02 11:10:52
【问题描述】:
我正在尝试使用 D3 显示直方图。
我从official example here 开始并尝试更改x 域的规模。
但是,如果我更改 x 域的比例,则会在各个直方图桶的宽度上出现错误。
示例中的代码有效(jsfiddle):
var x = d3.scale.linear()
.domain([0, 1])
.range([0, width]);
但这不是(jsfiddle):
var x = d3.scale.linear()
.domain([0.2, 1])
.range([0, width]);
其他人提到,为了缩放 x 轴,你应该使用这个:
var x = d3.scale.linear()
.domain(d3.extent(data))
.range([0, width]);
但是,这是不可能的,因为尚未创建数据,因为数据需要 x:
var x = d3.scale.linear()
.domain([60, 95])
.range([0, width]);
// Generate a histogram using twenty uniformly-spaced bins.
var data = d3.layout.histogram()
.bins(x.ticks(7))
(values);
那么如果需要 x 来创建数据,我该如何使用数据来创建 x?
请注意,缩放直方图的大边确实有效:
var x = d3.scale.linear()
.domain([0, Number(d3.max(values))])
.range([0, width]);
但是,如果小边不为零,事情就会破裂:
var x = d3.scale.linear()
.domain([Number(d3.min(values)), Number(d3.max(values))])
.range([0, width]);
【问题讨论】:
标签: javascript d3.js visualization histogram