首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >折线图的React-Vis Legend切换过滤器

折线图的React-Vis Legend切换过滤器
EN

Stack Overflow用户
提问于 2019-07-30 17:48:37
回答 1查看 2.1K关注 0票数 0

我正在使用react-vis,并试图实现一个带有图例的折线图,它可以像本网站顶部的第一个图所示进行过滤:https://uber.github.io/react-vis/examples/showcases/plots基本上,当单击图例项时,整个系列会变暗,图例项也会变暗。

我猜我需要在https://uber.github.io/react-vis/documentation/api-reference/legends的图例下使用中的onItemClick属性来更改线的不透明度,我已经成功地创建了线

代码语言:javascript
复制
<LineSeries
     data={data1}
     opacity={1}
     stroke="#f5222d"
     strokeStyle="solid"
/>

我不确定如何从这里开始,为onItemClick构建函数

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-30 19:11:09

下面是一个简单的例子

代码语言:javascript
复制
import React from "react";
import {
  XYPlot,
  LineSeries,
  DiscreteColorLegend
} from "react-vis";

export default class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      series: [{
        title: "Apples",
        disabled: false,
        data: [{ x: 0, y: 12 }, { x: 1, y: 22 }]
      }]
    };
  }

  clickHandler = (item, i) => {
    const { series } = this.state;
    series[0].disabled = !series[0].disabled;
    this.setState({ series });
  };

  render() {
    const { series } = this.state;

    return (
      <div>
        <DiscreteColorLegend
          onItemClick={this.clickHandler}
          width={180}
          items={series}
        />
        <XYPlot height={200} width={200}>
          <LineSeries
            data={series[0].data}
            opacity={series[0].disabled ? 0.2 : 1}
            stroke="#f5222d"
            strokeStyle="solid"
          />
        </XYPlot>
      </div>
    );
  }
}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57268837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档