Skip to content

[Bug] dataIndex in tooltip.valueFormatter is not absolute when zooming #21477

@bchazalet

Description

@bchazalet

Version

6.0.0

Link to Minimal Reproduction

https://echarts.apache.org/examples/en/editor.html?code=bZHtaoMwFIb_exVnUnADC-pa2zrcGIzBbmEiazqzEtBEYjoU8d53YrQfYX9K8_i8r-fEgigCKWQOQOZGQRgvw2C5cn0Ic_-GrZFFFouRPVpsg2xlsS2ytcV2yGKLhQHCjQ1DhFsbRgh3uZM_OY6oFRMcl-hRUUKUitXJeMCjZMcjlQm4pGWNq0sAfkl5ou9CVkQp_ez-ayQ-6Mv44AVtHyB9nhoAvgVv1BSSonozN6bd7BzIsxBHufabrjqIEkUrmIJ5G7yAl3qQgHeXenNUUnWSfL_ojTPAojc9-t9N0bA3mQF_B72WXvwg2nnxH0qwis5HGOf9FKK6EB29KrAF1dUYdxlvWEHd2Wpf8R4tRbHqInT_COPkZ6OhklFUMuNwUo0ltFHT95lSJeN0Ino2Hc-d4Q8&_source=echarts-doc-preview&enc=deflate

Steps to Reproduce

Create a simple line chart with zoom enabled and use tooltip.valueFormatter to format the value. Zoom in on a few points of the chart.

  data = [
  ["2016-10-4", 1],
  ["2016-10-5", 2],
  ["2016-10-6", 3],
  ["2016-10-7", 4],
  ["2016-10-8", 5],
  ["2016-10-9", 6],
  ["2016-10-10", 7],
  ["2016-10-11", 8],
  ["2016-10-12", 9]
];

option = {
  tooltip: {
    trigger: "axis",
    valueFormatter: (_value, dataIndex) => {
      const valueFromData = data[dataIndex][1];
      const symbol = valueFromData == _value ? '=' : '!=';
      return`${_value} ${symbol} ${valueFromData}`;
    }
  },
  toolbox: {
    feature: {
      dataZoom: {
      }
    }
  },
  dataZoom: {
    type: "inside"
  },
  xAxis: {
    type: "time"
  },
  yAxis: {
    type: "value"
  },
  series: [{
    name: "test",
    type: "line",
    data
  }]
}

Current Behavior

When using dataIndex to get the raw value from underlying data array, the value retrieved is wrong when I zoom onto a few points. It looks like dataIndex is only considering the points displayed on the chart , i.e. it's 0 for the first visible point with the zoom on but it prevents me from using it to retrieve the raw value from the underlying data array.

No zoom:
Image

With zoom:
Image

Expected Behavior

I expect the dataIndex to refer to the absolute index of the value within the underlying data array, no matter what the zoom context is.

Environment

- OS: macOS Tahoe 26.2
- Browser: Chrome 142.0.7444.176
- Framework: Angular

Any additional comments?

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions