D3.js 不带'的条形图;不要从零开始

D3.js 不带'的条形图;不要从零开始,d3.js,svg,D3.js,Svg,我这里有一场闪电战- 这是一个超级简单的条形图,只有一个条形 y轴显示0-200之间的值 条形图的值是从50开始,到150结束,所以我想画这些值的条形图,这样条形图就会位于图的中心 我有一定的高度,但无法确定y位置。您可以将范围从0设置为height scale.range([0, height]) scale.range([height, 0]) …或从高度到0 scale.range([0, height]) scale.range([height, 0]) …但这并没有改变以下事实

我这里有一场闪电战-

这是一个超级简单的条形图,只有一个条形

y轴显示0-200之间的值

条形图的值是从50开始,到150结束,所以我想画这些值的条形图,这样条形图就会位于图的中心


我有一定的高度,但无法确定y位置。

您可以将范围从
0
设置为
height

scale.range([0, height])
scale.range([height, 0])
…或从
高度
0

scale.range([0, height])
scale.range([height, 0])
…但这并没有改变以下事实:在SVG中,
y
轴的坐标系从页面的顶部到底部。因此,矩形的
y
属性必须始终小于
高度

也就是说,您必须对
y
属性使用
finish

.attr("y", function (d, i) {
    return y(d.finish);
})
.attr("height", function(d,i){
    return y(d.start) - y(d.finish);
});

以下是更新的代码:

在第45行:
.attr(“transform”、“translate”(+margin.left+)、“+-40+”)
这将正确定位起点,但如何获取高度以创建正确的终点位置-请参阅最后一行他如何计算高度。这似乎没有给我正确的高度-再次感谢你的帮助Gerardo,如果我添加更多数据,它似乎不起作用如果值不同,则一组数据不起作用-再次检查: