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

Rechart散点图Tooltip如何显示额外属性(如项目名称)

在Recharts Scatter图表中简便实现Tooltip显示额外属性

嘿,我完全懂你不想写复杂自定义Tooltip的心情——其实不用大动干戈,只需要利用Recharts Tooltip的内置属性就能搞定,之前你用dataKey和label的方式不对,因为这俩属性不能直接绑定数据点的动态字段,得用函数式的配置来获取单个数据点的完整信息。

方法1:用formatter自定义Tooltip显示内容

这个方法可以让你完全控制Tooltip里的每一行内容,包括添加fullName这类额外属性:

<ScatterChart width={400} height={400} margin={{ top: 20, right: 20, bottom: 20, left: 20 }}>
  <CartesianGrid />
  <XAxis type="number" dataKey="sizeMB" name="Size" unit=" MB" />
  <YAxis type="number" dataKey="directReferenceCount" name="# of References" unit=" References" />
  <Tooltip 
    cursor={{ strokeDasharray: '3 3' }}
    // formatter接收当前数据点的payload,返回自定义的显示条目数组
    formatter={(value, name, props) => {
      const { fullName, sizeMB, directReferenceCount } = props.payload;
      return [
        ['项目名称', fullName],
        ['大小', `${sizeMB} MB`],
        ['引用数', `${directReferenceCount} References`]
      ];
    }}
  />
  <Scatter name="Line Item" data={this.props.data} fill="#8884d8" />
</ScatterChart>

方法2:把fullName设为Tooltip的标题(更简洁)

如果你只想保留默认的x/y值显示,同时添加项目名称作为Tooltip的标题,只需要给label传一个函数,动态获取当前数据点的fullName:

<ScatterChart width={400} height={400} margin={{ top: 20, right: 20, bottom: 20, left: 20 }}>
  <CartesianGrid />
  <XAxis type="number" dataKey="sizeMB" name="Size" unit=" MB" />
  <YAxis type="number" dataKey="directReferenceCount" name="# of References" unit=" References" />
  <Tooltip 
    cursor={{ strokeDasharray: '3 3' }}
    // label函数接收包含payload的参数,返回要显示的标题
    label={({ payload }) => payload[0].fullName}
    // 保持默认的数值显示格式(可选)
    formatter={(value, name) => [`${name}`, value]}
  />
  <Scatter name="Line Item" data={this.props.data} fill="#8884d8" />
</ScatterChart>

为什么之前的尝试没效果?

你之前直接给<Tooltip>传dataKey={'fullName'}和label={'fullName'}是静态值,Recharts没法把它们和单个数据点绑定。只有当label、formatter这类属性接收函数时,才能访问到当前数据点的payload(也就是你的单个数据对象),从而拿到fullName这类额外属性。

这两种方法都不用完全自定义Tooltip组件,属于官方支持的简便配置方式,比写自定义Tooltip要省事多啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 21:29:10