d3.js - 是否可以使用 ElasticY 左轴和定义的右轴域?
问题描述
目前我有一个复合线图,其中线在大多数区域重叠。出于这个原因,我开始寻找一种方法来修改rightY域。
.rightY(d3.scaleLinear().domain([0,1]))
右轴是一个百分比,如果我不设置 elastiY(true),则不应超过 1 并且似乎可以工作。有没有办法让左轴弹性和右轴固定域?
解决方案
您是正确的,目前左右轴使用相同的弹性设置。
但是,elasticY
手动实现非常容易,因此您可以将其关闭并在图表渲染或重绘时计算左域:
moveChart.on('preRender preRedraw', chart => {
const ranges = chart._calculateYAxisRanges(true, false);
chart.y(d3.scaleLinear().domain([ranges.lyAxisMin, ranges.lyAxisMax]));
})
我通过查看复合图表的源来弄清楚这一点,特别是_prepareLeftYAxis()和_prepareYAxis()。
推荐阅读
- reactjs - React 路由器不再渲染组件,除了默认组件
- php - Laravel:如何在注销时刷新会话和重定向?
- angularjs - 如何根据季度显示存储库中的数据?
- excel - VBA Shapes.AddTextbox 自定义布局
- python-3.x - 使用 AWS lambda 将自定义指标数据写入 CloudWatch 时超时
- c++ - 如何告诉声明为的数组的元素计数:std::unique_ptr
- pyinstaller - 运行 pyinstaller 后找不到模块
- sql - 更新查询、嵌套 iif SET 和连接表
- javascript - TypeError: is null 因为目标文件在包含
- python - 我正在尝试获取标签名称数组以进行可视化,我需要在代码下方运行但遇到问题。各位大佬可以在下面给我建议吗?