代码之家  ›  专栏  ›  技术社区  ›  ttmt

不是从零开始的条形图

  •  1
  • ttmt  · 技术社区  · 6 年前

    我这里有个闪电战- https://stackblitz.com/edit/d3-start-above-zero?embed=1&file=index.js&hideNavigation=1

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

    y轴显示0-200之间的值

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

    我有点高,但不能确定y的位置。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Gerardo Furtado    6 年前

    0 height ...

    scale.range([0, height])
    

    …或来自 高度 0

    scale.range([height, 0])
    

    …但这并不能改变一个事实,即在SVG中 y 轴从页面的顶部到底部。因此 是的 较小 高度 对于矩形。

    也就是说,你必须使用 finish 对于 是的 属性:

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

    https://stackblitz.com/edit/d3-start-above-zero-qnk7bl?file=index.js