reactjs - Recharts:将工具提示光标定位在活动点上
解决方案
很好的问题,ReCharts 文档中的答案绝对不是直截了当的。活动点的 X 和 Y 坐标实际上已经作为道具传递给您的自定义工具提示组件。
因此,如果您在自定义组件中注销道具,您将获得大量信息,其中包括您当前悬停的可视化中的数据点。
const DottedTooltip = (props) => {
console.log(props);
...
您需要通过解构或从 props 访问它来获取所需的位置信息,然后使用它来设置诸如 cx 属性与<circle>
svg 或 d 属性之类的东西<path>
。
这是我在 LineChart 上实现的虚线光标的示例
const DottedTooltip = ({ points }) => {
const xPos = points[0].x;
return (
<svg viewBox="0 0 509 156" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx={xPos} cy="1" r="1" fill="#919191" />
<circle cx={xPos} cy="11" r="1" fill="#919191" />
<circle cx={xPos} cy="21" r="1" fill="#919191" />
<circle cx={xPos} cy="31" r="1" fill="#919191" />
<circle cx={xPos} cy="41" r="1" fill="#919191" />
<circle cx={xPos} cy="51" r="1" fill="#919191" />
<circle cx={xPos} cy="61" r="1" fill="#919191" />
<circle cx={xPos} cy="71" r="1" fill="#919191" />
<circle cx={xPos} cy="81" r="1" fill="#919191" />
<circle cx={xPos} cy="91" r="1" fill="#919191" />
<circle cx={xPos} cy="101" r="1" fill="#919191" />
<circle cx={xPos} cy="111" r="1" fill="#919191" />
<circle cx={xPos} cy="121" r="1" fill="#919191" />
<circle cx={xPos} cy="131" r="1" fill="#919191" />
<circle cx={xPos} cy="141" r="1" fill="#919191" />
</svg>
);
};
最后注意:您将要确保将自定义 svg 的 viewBox 属性设置为等于整个图形的尺寸,以确保光标将在整个可视化中呈现。
推荐阅读
- java - 如何在 SAS 9.4 中获得像 OLAPDataSetInterface 这样的对象
- angular - 从 SPA (Angular) 向 ADFS 请求令牌时如何修复 CORS?
- python-3.x - 如何初始化 n 个不同的列表?
- xml - 将 XML 标记转换为 CSV
- character-encoding - 避免使用 http-equiv标签
- python - 使用 python 的 subprocess.Popen() 创建进程时命名进程
- javascript - Cucumber JS:如何在 Given/When/Then 步骤之外导出/更新全局变量?
- sql - 在一个查询中选择不同的子类型值
- reactjs - UseContext 不迭代
- java - 行号错误 = inputLine.nextInt();