You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用React Recharts库显示图表数据点的X、Y坐标值?

如何让Recharts折线图Tooltip同时显示X、Y坐标值?

要实现鼠标悬停时同时展示X、Y坐标值,有两种简洁的方案:

方法一:自定义Tooltip内容

通过Tooltip的content属性完全控制展示内容,灵活定制显示字段和样式:

替换原代码中的<Tooltip />为:

<Tooltip
  content={({ active, payload }) => {
    if (active && payload && payload.length) {
      const { x, y } = payload[0].payload;
      return (
        <div style={{ backgroundColor: '#fff', padding: '8px', border: '1px solid #ddd', borderRadius: '4px' }}>
          <p>X: {x}</p>
          <p>Y: {y}</p>
        </div>
      );
    }
    return null;
  }}
/>

方法二:利用默认Tooltip的label配置

如果想保留Recharts默认的Tooltip样式,只需指定labelKey关联X轴字段,即可自动显示X值:

替换原代码中的<Tooltip />为:

<Tooltip labelKey="x" />

此时默认Tooltip会将x字段作为标题展示,同时保留Y值的显示,实现X、Y坐标同时呈现。

注意事项

确保你的chartData数据结构为包含x和y字段的对象数组,例如:

const chartData = [
  { x: 1, y: 6 },
  { x: 2, y: 12 },
  { x: 3, y: 8 },
  // 更多数据...
];

修改后的完整代码示例

import { LineChart, XAxis, YAxis, CartesianGrid, Line, Tooltip, ReferenceLine } from 'recharts';

const Chart = ({ chartData }) => {
  return (
    <>
      <LineChart
        width={1000}
        height={500}
        data={chartData}
        margin={{
          top: 10,
          right: 30,
          left: 30,
          bottom: 10,
        }}
      >
        <CartesianGrid strokeDasharray='3 3' />
        <XAxis dataKey='x' domain={['auto', 'auto']} />
        <ReferenceLine x={0} stroke='black' />
        <YAxis dataKey='y' domain={['auto', 'auto']} />
        <ReferenceLine y={0} stroke='black' />
        <Line type='monotone' dataKey='y' stroke='#ccc' />
        {/* 这里使用方法二的配置,也可替换为方法一的自定义内容 */}
        <Tooltip labelKey="x" />
      </LineChart>
    </>
  );
};

export default Chart;

内容的提问来源于stack exchange,提问作者Priyanshi Babbar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:55:21