最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Recharts LineChart dots only for certain data points - Stack Overflow

programmeradmin4浏览0评论

I would like to use the LineChart of Recharts to show a data set with up to 200 points. However, I would like to show the dots/tooltip/activeDot only for 5 of those data points on small screens because 200 points wouldn't be clickable anymore on smartphones.

How can I achieve that?

I would like to use the LineChart of Recharts to show a data set with up to 200 points. However, I would like to show the dots/tooltip/activeDot only for 5 of those data points on small screens because 200 points wouldn't be clickable anymore on smartphones.

How can I achieve that?

Share Improve this question asked Apr 19, 2017 at 9:49 StefanStefan 1,7304 gold badges20 silver badges34 bronze badges 1
  • hey, did you end up solving this issue? – rony l Commented Dec 27, 2018 at 22:49
Add a ment  | 

2 Answers 2

Reset to default 9

In order to only show certain dots you can refer to the CustomizedDotLineChart example in Recharts documentation.

You can see that the CustomizedDot ponent receives a payload prop, which contains the data item at that point. By adding a property such as visible (in your example, you can set the visible value depending on the viewport width, updating it on resize events), you can do:

const CustomizedDot = (props) => {
  const { cx, cy, stroke, payload, value } = props;

  if (payload.visible) {
    return (
      <svg x={cx - 4} y={cy - 4} width={8} height={8} fill="white">
        <g transform="translate(4 4)">
          <circle r="4" fill="black" />
          <circle r="2" fill="white" />
        </g>
      </svg>
    );
  }

  return null;
};

Based on the Recharts API, I believe the parameter you are looking for is the payload parameter, which is part of the Tooltip ponent. Pass an object that contains only the data points that you want to be clickable.

Link for reference: http://recharts/#/en-US/api/Tooltip

发布评论

评论列表(0)

  1. 暂无评论