0

我有一个带有工具提示的图表在那里我显示了当前点的日期和价格。

    var toolTipWidth = 125;
    var width = 600;
    var toolTip = document.createElement('div');
    toolTip.className = 'tooltip';
    chartContainer.appendChild(toolTip);

    chart.subscribeCrosshairMove(function(param) {
      if (!param.time || param.point.x < 0 || param.point.x > width || param.point.y < 0 || param.point.y > height) {
        toolTip.style.display = 'none';
        return;
      }

      let price = param.seriesPrices.get(areaSeries);    
      let date = LightweightCharts.isBusinessDay(param.time) ? businessDayToString(param.time) : new Date(param.time * 1000).toLocaleDateString();

      toolTip.innerHTML = `<div class="tooltip__price">${price}</div><div class="tooltip__time">${date}</div>`;
      let left = param.point.x - toolTipWidth / 2;
      left = Math.max(0, Math.min(width - toolTipWidth, left));

      toolTip.style.left = left + 'px';
  });

在图表上,我需要显示增长的动态(数量发生了多大变化,是增加还是减少,百分比是多少)。为此,我需要获取上一点并将其与当前点进行比较。但是只有一个图表点被传递给工具提示函数。如何获得先前的值?

4

1 回答 1

1

这对于 v3.7 和即将推出的 v3.8 版本是不可能的,因此您需要将数据存储在某处,然后使用该数据查找以前的数据点。

在下一个主要的 v4.0 更新中,该库将包含一个新方法ISeriesApi.dataByIndex,您可以使用它来获取逻辑索引的数据(请参阅PR with changes)。

于 2022-01-19T18:13:59.417 回答