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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions