d3.js bar以负值开头

时间:2012-09-10 21:40:16

标签: javascript charts svg d3.js bar-chart

所以我在屏幕上有这样的图像:

我已经看过创建条形图的例子,但我遇到的问题是从负面到零到正面。我想知道每行应该是3个柱(负到零,平均点缀为矩形,然后从平均值到最大值)。

这有点像蜡烛图表但水平。

非常感谢任何帮助。

这是我到目前为止取得的成就:http://jsfiddle.net/jLjPz/

1 个答案:

答案 0 :(得分:2)

我修改了你的jsfiddle使它看起来与你提供的图像类似。关于我的更改需要注意几点:

http://jsfiddle.net/jLjPz/3/

对于线性刻度,您可以将负数和正数输入数组。因此,您应该使用.domain([0,100])

,而不是使用.domain([-100,100])

您可以使用此比例来映射d[0]d[1],这样当绘制矩形时,您的轴的大小就会正确显示。

最后,我做了一些数学计算,以获取[start,width]值,使它们能够很好地适应比例。

x(d[0])是每个矩形左侧的正确缩放位置 x(d[1]+d[0])-x(d[0])是每个矩形的正确缩放宽度 x(d[1]+d[0])-x(d[0]))/2+x(d[0])是矩形的正确缩放中点。

希望这有帮助!