javascript - 在鼠标指针悬停的 react-vis 图表中添加一条垂直线

标签 javascript reactjs react-vis

我正在评估 react-vis。假设我有一个 react-vis simple chart ,当鼠标悬停在图表上时,如何添加一条随鼠标移动的垂直线? 我的猜测是我需要在 XYPlot 中添加一个十字准线组件,也许还有一个 YAxis 组件。但是我不明白怎么做,也找不到任何相关的例子。

function Chart({data}) {
  return <XYPlot width={400} height={300}><XAxis/><YAxis/>
    <HorizontalGridLines />
    <VerticalGridLines />
    <LineMarkSeries data={data} />
    </XYPlot>;
}

最佳答案

可以用 <Crosshair /> 添加一条垂直线成分。您可以在位于 here 的文档中使用此示例.你需要设置 onMouseLeaveonNearestX处理程序更新 Crosshairs线的值(value)。诀窍是你必须把 divsCrosshair里面组件,因此它不会呈现值框。我正在使用 React Hooks 来回答您的问题,但您可以将状态与类 ( React Hooks State Docs) 一起使用。

import React, { useState } from 'react';

function Chart({data}) {
  const [points, setPoints] = useState([]);

  return <XYPlot
    width={400}
    height={300}
    onMouseLeave={() => setPoints([])}
    >
    <XAxis/>
    <YAxis/>
    <HorizontalGridLines />
    <VerticalGridLines />
    <LineMarkSeries
      data={data}
      onNearestX={v => setPoint([v])}
    />
    <Crosshair values={point}>
      {/* Divs inside Crosshair Component required to prevent value box render */}
      <div></div>
    </Crosshair>
  </XYPlot>;
}

关于javascript - 在鼠标指针悬停的 react-vis 图表中添加一条垂直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55066016/

相关文章:

javascript - 如何将随机化器的结果值插入到 html 输入值中? (JavaScript)

javascript - 如何在 iframe 和 div 上获取 facebook、gmail 网站

reactjs - 使用 D3.js (v4) 和 React.js 如何在简单的折线图上标记 Axis ?

react-vis - “react-vis”我如何在特定点上显示十字准线

javascript - 如何将 json 数据推送到 React-vis 的 XY 数组中?

react-vis - React vis - 在 x 轴上格式化时间刻度

javascript - 错误放置默认样式

javascript - getElementById 或 parseInt 不起作用?

javascript - 为什么更改状态中的值不会触发 REACT 中输入元素的 onChange

javascript - 如何解决TypeError : environment. teardown is not a function