Recharts 散点图在调整图表大小时在工具提示中显示最低的 x 值

Recharts scatter chart shows the lowest x value in tooltip when chart is resized

我正在使用 Recharts 散点图绘制气泡图。根据要求,图表应可调整大小以将高度或宽度加倍。在调整大小之前一切都很好。但是一旦调整了图表的大小,工具提示就会显示一个附加项(这是所有数据系列中 x 轴数据集中的最低值)。一旦发生这种情况,即使在将图表改回原始大小后,这个不正确的工具提示仍然存在。

调整大小前更正工具提示

调整大小后工具提示不正确,这里 45 是类型 A 和类型 B 中的最低 x 值

这是我的代码:

const BubbleChart = ({ data, width, height }) => {
  const drawCharts = (data) => {
    const charts = [];
    for (let i = 0; i < data.length; i++) {
      charts.push(
        <Scatter
          name={data[i].name}
          data={data[i].values}
          fill={colors[i]}
        />
      );
    }
    return charts;
  };

  return (
    <ScatterChart
      width={width}
      height={height - 100}
      margin={{ top: 10, right: 40, bottom: 0, left: 0 }}
    >
      <CartesianGrid strokeDasharray="3 3" />
      <XAxis
        type="number"
        dataKey="x"
        name="height"
        unit="cm"
        range={[100, 250]}
      />
      <YAxis
        type="number"
        dataKey="y"
        name="width"
        unit="cm"
        range={[200, 300]}
      />
      <ZAxis
        type="number"
        dataKey="z"
        name="weight"
        unit="cm"
        range={[200, 1000]}
      />
      <Tooltip cursor={{ strokeDasharray: '3 3' }} />
      <Legend />
      {drawCharts(data)}
    </ScatterChart>
  );
};

如何避免在调整图表大小时出现这个不正确的图例?

对于任何感兴趣的人,我发现了这个代码笔,我们可以在其中通过传递一个函数来覆盖默认的工具提示。 https://codepen.io/brockboren/pen/yEaYQo

所以我更改了我的代码:

<Tooltip cursor={{ strokeDasharray: '3 3' }} />

<Tooltip labelFormatter={() => { return ''; }} cursor={{ strokeDasharray: '3 3' }} />

这为我解决了问题。