highcharts 导航器中范围改变时如何在y轴上添加因子并重新绘制

3duebb1j  于 2022-11-10  发布在  Highcharts
关注(0)|答案(1)|浏览(203)

我试图创建一个股票表现图表,与下面的图表非常相似:
https://www.orbis.com/bm/private-client/funds/global-equity
其思想是y轴始终从10,000开始并从该位置移动。当导航器范围更改时,通过对所有数据点应用一个因子来重新绘制顶部区域。即使图表更改,导航器区域也不会更改。
有什么办法可以用highstock做这个吗?

k7fdbhmy

k7fdbhmy1#

感谢@ppotaczek给出的答案。它比我想做的要简单。简单就是天才。
这就是解决方案

const baseData = [100.00, 99.78, 96.50, 96.61, 97.57, 96.02, 96.42, 99.17, 100.35, 101.30, 100.92, 99.63, 97.90, 100.30, 91.66, 94.61, 95.36, 94.89, 95.43, 95.25, 96.70, 93.58, 92.53];

[100, 100.95, 100.57, 99.28, 97.56, 99.95, 91.34, 94.28, 95.03, 94.56, 95.1, 94.92]

Highcharts.stockChart('container', {
  series: [{
    data: baseData.slice()
  }],
  xAxis: {
    events: {
      afterSetExtremes: function(e) {
        const min = e.min;
        const max = e.max;

        const visibleData = baseData.filter(
          (dataEl, index) => index > min && index <= max + 1
        );
                factor = 100.00/visibleData[0];
        const finalData = [];

        visibleData.forEach((dataEl, index) => {
          finalData.push([min + index, dataEl*factor]);
        });

        this.series[0].setData(finalData);
      }
    },
    minRange: 1
  },
  navigator: {
    adaptToUpdatedData: false
  }
});

相关问题