简单易懂的Echars案例,实现点击列表联动饼图

本文介绍了一个简单易懂的Echarts案例,通过echarts-for-react库,展示了如何实现在前端项目中创建一个左侧列表,当点击列表项时,右侧的饼图相应高亮显示的联动效果。通过遍历data展示StageLine子组件,利用forwardRef获取饼图的ref,从而实现左右联动。同时提供了点击列表以外区域取消高亮的方法。完整源码可在提供的链接中查看。
摘要由CSDN通过智能技术生成

## 简单易懂的Echars案例,实现点击列表联动饼图
1. 安装 echarts-for-react
2. 项目中引入 import ReactECharts from 'echarts-for-react';
3. 开始写案例啦!!!


1. 首先我们先写一个左侧列表 StageLine
利用StageItem 将 data 中的数据遍历并展示。 

import React = require('react');
import { StageItem } from './StageItem';

const data = [
  { name: '糖', value: '12' },
  { name: '蛋白质', value: '24' },
  { name: '脂肪', value: '15' },
];

type StageLineProps = {
  handleClickPie?: (index: number) => void;
  setCurrentIndex?: (o: number) => void;
};

export default function StageLine({
  handleClickPie,
  setCurrentIndex,
}: StageLineProps) {
  return (
    <div>
      {data?.map((item, index) => {
        return (
          <div
            key={index}
            onClick={() => {
              handleClickPie?.(index);
              setCurrentIndex?.(index);
            }}
          >
            <StageItem title={item.name} value={item.value} />
          </div>
        );
      })}
    </div>
  );
}


#### StageLine 子组件 StageItem

import { Group, Text } from '@mantine/core';
import React = require('react');

type StageItemProps 
ECharts 是一个使用 JavaScript 实现的开源可视化库,它可以在网页中创建各种图表。在 ECharts 中,饼图是一种常见的数据可视化形式,用于展示不同部分占总体的比例。有时候用户希望点击饼图的图例时,不改变饼图的显示状态,而是执行其他一些操作,比如触发事件或者弹出提示等。 要实现点击图例不让饼图发生变化的效果,你可以通过设置 `series` 的 `selectedMode` 属性来控制。将该属性设置为 `'none'`,意味着禁用图例的选择功能,点击图例时,饼图不会显示对应部分的高亮效果。然后,你可以监听图例的点击事件,通过回调函数来定义点击后要执行的操作。 下面是一个简单的示例代码,展示如何设置 ECharts 饼图以及如何监听图例点击事件: ```javascript // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); // 指定图表的配置项和数据 var option = { series: [ { name: '访问来源', type: 'pie', selectedMode: 'none', // 禁用图例选择 radius: '55%', label: { show: false, position: 'center' }, emphasis: { label: { show: true, fontSize: '40', fontWeight: 'bold' } }, labelLine: { show: false }, data: [ {value: 335, name: '直接访问'}, {value: 310, name: '邮件营销'}, {value: 234, name: '联盟广告'}, {value: 135, name: '视频广告'}, {value: 1548, name: '搜索引擎'} ] } ], // 在这里设置图例点击事件 legend: { data: [ {name: '直接访问'}, {name: '邮件营销'}, {name: '联盟广告'}, {name: '视频广告'}, {name: '搜索引擎'} ], onclick: function (params) { // 这里可以编写点击图例后想要执行的逻辑 console.log('点击了图例:', params.name); } } }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); ``` 在上述代码中,通过设置 `series` 中 `selectedMode` 为 `'none'`,可以禁用图例项的选中状态变化。而通过 `legend` 的 `onclick` 事件,可以在点击图例时执行一些特定的操作,比如输出点击的图例项名称。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值