javascript - 以负值开头的 d3.js bar

标签 javascript charts svg d3.js bar-chart

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

我已经查看了创建条形图的示例,但我遇到的问题是从负数到零到正数绘制图表。我想知道每行是否应该是 3 个条(负数到零,平均虚线矩形,然后从平均值到最大值)。

这有点像蜡烛图,但是是水平的。

任何帮助将不胜感激。

这是我迄今为止所取得的成就的一个 fiddle :http://jsfiddle.net/jLjPz/

最佳答案

我已经修改了您的 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]) 是矩形的正确缩放中点。

希望这有帮助!

关于javascript - 以负值开头的 d3.js bar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12359882/

相关文章:

javascript - 如何使用 d3.time.scale 为一天中的每一小时和一周中的每一天创建标签

javascript - 具有多列数据的凹痕多行

javascript - React 组件继承

javascript - knockout 切换嵌套项目的可见性

java - axis.getCategories().remove(index number) 在 JavaFX 图表中不起作用

javascript - 使用 D3 无法显示 SVG 异物

ios - 缩放 SVG 超过未知阈值会导致元素消失

javascript - AngularJS ng-重复重复的项目

JavaScript - 如何增加计数

javascript - 不支持 svg 的浏览器的 CSS hack