当前位置: 首页 > news >正文

react+ echarts 轮播饼图

react+ echarts 轮播饼图

图片示例
在这里插入图片描述
在这里插入图片描述
代码

import * as echarts from 'echarts';
import { useEffect } from 'react';
import styles from './styles.scss';const Student = (props) => {const { dataList, title } = props;// 过滤数据const visionList = [{ value: 1048, name: 'Search Engine'},{ value: 735, name: 'Direct' },{ value: 580, name: 'Email' },{ value: 484, name: 'Union Ads' },{ value: 300, name: 'Video Ads' }];useEffect(() => {loadingChart();}, [dataList])const loadingChart = () => {// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('Student'));// 指定图表的配置项和数据var option = {tooltip: {trigger: 'item'},series: [{name: '学生统计',type: 'pie',radius: ['56%', '84%'],data: visionList,color: ['#52CCB8', '#61C2F2', '#36B580', '#619DF2', '#2E8AE5'],emphasis: { // 设置高亮时显示标签label: {show: true},scale: true, // 设置高亮时放大图形scaleSize: 20},label: { // 设置图形标签样式show: false, // 未高亮时不显示标签,否则高亮时显示的标签会与静态的标签重叠position: 'center',// 设置标签展示内容,其中{d}、{b}为echarts标签内容格式器formatter: '{d_style|{d}}{per_style|%}\n{b_style|{b}}',// 为标签内容指定样式,只能设置series-pie.label支持的样式rich: {d_style: {fontSize: 20},per_style: {fontSize: 20},b_style: {fontSize: 18}}}}]}// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);if (visionList.length <= 0) {myChart.showLoading({text: '暂无数据',showSpinner: false,textColor: '#fff',maskColor: 'rgba(0, 0, 0, 0)',fontSize: '18px'})} else {myChart.hideLoading()}let currentIndex = -1; // 当前高亮图形在饼图数据中的下标let changePieInterval = setInterval(selectPie, 1000); // 设置自动切换高亮图形的定时器function highlightPie() { // 取消所有高亮并高亮当前图形for (var idx in option.series[0].data)// 遍历饼图数据,取消所有图形的高亮效果myChart.dispatchAction({type: 'downplay',seriesIndex: 0,dataIndex: idx});// 高亮当前图形myChart.dispatchAction({type: 'highlight',seriesIndex: 0,dataIndex: currentIndex});}myChart.on('mouseover', (params) => { // 用户鼠标悬浮到某一图形时,停止自动切换并高亮鼠标悬浮的图形if (changePieInterval)clearInterval(changePieInterval);currentIndex = params.dataIndex;highlightPie();});myChart.on('mouseout', (params) => { // 用户鼠标移出时,重新开始自动切换if (changePieInterval)clearInterval(changePieInterval);changePieInterval = setInterval(selectPie, 1000);});function selectPie() { // 高亮效果切换到下一个图形var dataLen = option.series[0].data.length;currentIndex = (currentIndex + 1) % dataLen;highlightPie();}}return (<div id='Student' style={{ width: '77%', height: '250px', float: 'right', color: '#fff' }}></div>);
};export default Student;
http://www.lryc.cn/news/333789.html

相关文章:

  • 政安晨:【深度学习神经网络基础】(三)—— 激活函数
  • 使用tomcat里的API - servlet 写动态网页
  • 从0到1搭建文档库——sphinx + git + read the docs
  • EasyExcel 校验后导入
  • 【星计划★C语言】c语言初相识:探索编程之路
  • 搜维尔科技:借助 ARVR 的力量缩小现代制造业的技能差距
  • 数据结构之栈和队列
  • centos安装使用elasticsearch
  • 4.7学习总结
  • 自定义gitlog格式
  • Redission--分布式锁
  • 非关系型数据库(缓存数据库)redis的集群
  • MySQL:表的约束(上)
  • 树莓派5使用体验
  • 代码随想录算法训练营第42天| 背包问题、416. 分割等和子集
  • Node.js安装及环境配置指南
  • 【Java基础】面试题汇总
  • 数据库事务的超级详细讲解,包括事务特性、事务隔离级别、MVCC(多版本并发控制)
  • 鸿蒙Lottie动画-实现控制动画的播放、暂停、倍速播放、播放顺序
  • C++面试100问与自动驾驶100问
  • 加速 Redis 操作:掌握管道技术提升性能与效率
  • 深入浅出 -- 系统架构之分布式系统底层的一致性
  • idea Springboot 电影推荐系统LayUI框架开发协同过滤算法web结构java编程计算机网页
  • xss【2】
  • 时序分解 | Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序列信号分解
  • css- 4
  • 22.括号生成
  • JAVA八股--redis
  • [图像处理] MFC载入图片并绘制ROI矩形
  • Godot 4 教程《勇者传说》依赖注入 学习笔记(0):环境配置