d3.js - 不从零开始的条形图
问题描述
我在这里有一个 stackblitz - https://stackblitz.com/edit/d3-start-above-zero?embed=1&file=index.js&hideNavigation=1
这是一个超级简单的条形图,只有一个条形
y 轴显示 0-200 的值
条形的值从 50 开始,到 150 结束,所以我想在这些值处绘制条形,这样条形就会位于图表中心的某个位置。
我有点高,但无法固定 y 位置。
解决方案
您可以使范围从0
到height
...
scale.range([0, height])
...或height
从0
...
scale.range([height, 0])
...但这并没有改变这样一个事实,即在 SVG 中,y
轴的坐标系从页面的顶部到底部。因此,该y
属性必须始终小于矩形的height
。
话虽如此,您必须使用finish
该y
属性:
.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
推荐阅读
- c++ - GpuMat 数据无法更改
- swift - 在 TableView 中设置单元格样式的正确方法,没有滞后、滚动问题和动态高度问题
- javascript - 事件监听器,JavaScript
- github - 如何在 GitHub 上进行快进合并?
- python - 将许多小图像连接到一个大图像
- linkedin - 如何访问私人 LinkedIn API 仅用于人员搜索
- node.js - Lambda 有时无法发布到 SNS 主题
- reactjs - 在没有文件扩展名的情况下访问公用文件夹中的文件
- azure - 如何从 GCP 访问 Azure-datapool 中的数据
- html - html中的预加载图像给出警告消息