首页 > 解决方案 > 是否可以使用 ElasticY 左轴和定义的右轴域?

问题描述

目前我有一个复合线图,其中线在大多数区域重叠。出于这个原因,我开始寻找一种方法来修改rightY域。

.rightY(d3.scaleLinear().domain([0,1]))

右轴是一个百分比,如果我不设置 elastiY(true),则不应超过 1 并且似乎可以工作。有没有办法让左轴弹性和右轴固定域?

标签: d3.jsdc.js

解决方案


您是正确的,目前左右轴使用相同的弹性设置。

但是,elasticY手动实现非常容易,因此您可以将其关闭并在图表渲染或重绘时计算左域:

    moveChart.on('preRender preRedraw', chart => {
      const ranges = chart._calculateYAxisRanges(true, false);
      chart.y(d3.scaleLinear().domain([ranges.lyAxisMin, ranges.lyAxisMax]));
    })

我通过查看复合图表的源来弄清楚这一点,特别是_prepareLeftYAxis()_prepareYAxis()

演示小提琴


推荐阅读