react18+ts 封装图表及词云组件
react18+ts 封装图表及词云组件
1.下载依赖包
"echarts": "^5.5.1","echarts-for-react": "^3.0.2","echarts-wordcloud": "^2.1.0",
2.创建目录结构

3.代码封装
- ChartCard.tsx

- Wordcloud.tsx

4.调用
import React, { memo, useEffect, useMemo, useRef, useState } from 'react'
import type { FC, ReactNode } from 'react'
import * as echarts from 'echarts/core'
import ChartCard from '@/components/echarts/ChartCard'
import WordCloud from '@/components/echarts/Wordcloud'interface IProps {children?: ReactNode
}const Echarts: FC<IProps> = () => {// * 获取当前月过去一年的年月const generatePastYearMonths = () => {const months = []const currentDate = new Date()for (let i = 0; i < 12; i++) {const year = currentDate.getFullYear()const month = currentDate.getMonth() + 1const formattedMonth = month < 10 ? `0${month}` : `${month}`const formattedDate = `${year}-${formattedMonth}`months.unshift(formattedDate)currentDate.setMonth(currentDate.getMonth() - 1) // 当前日期减去一个月}return months}const option = {color: ['#4387fb'],tooltip: {trigger: 'axis',axisPointer: { type: 'shadow' }},grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true },legend: {data: [{ name: '会员数', icon: 'roundRect' },{ name: '会员率', itemStyle: { color: 'rgb(128, 255, 165)' } }]},xAxis: [{ type: 'category', data: generatePastYearMonths(), axisTick: { alignWithLabel: true } }],yAxis: [{ type: 'value', name: '会员数', axisLabel: { formatter: '{value} 人' } },{ type: 'value', name: '会员率', axisLabel: { formatter: '{value} %' } }],series: [{name: '会员数',type: 'bar',barWidth: '40%',data: [100, 52, 200, 334, 390, 330, 220, 325, 135, 267, 131, 220],tooltip: { valueFormatter: (value: number) => `${value}人` }},{name: '会员率',type: 'line',stack: 'Total',smooth: true,lineStyle: { width: 0 },showSymbol: false,yAxisIndex: 1, // 默认0 多y轴情况下 需更改areaStyle: {opacity: 0.4,color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ offset: 0, color: 'rgb(128, 255, 165)' },{ offset: 1, color: 'rgb(1, 191, 236)' }])},emphasis: { focus: 'series' },data: [20, 16, 28, 36, 90, 33, 27, 45, 49, 67, 89, 66],tooltip: { valueFormatter: (value: number) => `${value}%` }}]}const wordCloudOption = {tooltip: {},series: [{type: 'wordCloud',gridSize: 2,sizeRange: [12, 50],rotationRange: [-90, 90],shape: 'pentagon',width: 600,height: 400,drawOutOfBound: true,textStyle: {color() {return `rgb(${[Math.round(Math.random() * 160),Math.round(Math.random() * 160),Math.round(Math.random() * 160)].join(',')})`}},emphasis: {textStyle: {shadowBlur: 10,shadowColor: '#333'}},data: [{name: 'Sam S Club',value: 10000,textStyle: { color: 'black' },emphasis: { textStyle: { color: 'red' } }},{name: 'Macys',value: 6181},{name: 'Amy Schumer',value: 4386},{name: 'Jurassic World',value: 4055},{name: 'Charter Communications',value: 2467},{name: 'Chick Fil A',value: 2244},{name: 'Planet Fitness',value: 1898},{name: 'Pitch Perfect',value: 1484},{name: 'Express',value: 1112},{name: 'Home',value: 965},{name: 'Johnny Depp',value: 847},{name: 'Lena Dunham',value: 582},{name: 'Lewis Hamilton',value: 555},{name: 'KXAN',value: 550},{name: 'Mary Ellen Mark',value: 462},{name: 'Farrah Abraham',value: 366},{name: 'Rita Ora',value: 360},{name: 'Serena Williams',value: 282},{name: 'NCAA baseball tournament',value: 273},{name: 'Point Break',value: 265}]}]}return (<div className='chart-card-wrapper'><ChartCard option={option}></ChartCard><br /><WordCloud option={wordCloudOption}></WordCloud></div>)
}export default memo(Echarts)相关文章:
react18+ts 封装图表及词云组件
react18ts 封装图表及词云组件 1.下载依赖包 "echarts": "^5.5.1","echarts-for-react": "^3.0.2","echarts-wordcloud": "^2.1.0",2.创建目录结构 3.代码封装 ChartCard.tsx Wordcloud.tsx 4.调用 import Rea…...
图像根据mask拼接时,边缘有色差 解决
目录 渐变融合(Feathering) 沿着轮廓线模糊: 代码: 泊松融合 效果比较好: 效果图: 源代码: 泊松融合,mask不扩大试验 效果图: 源代码: 两个图像根据mask拼接时,边缘有色差 渐变融合(Feathering) import numpy as np import cv2# 假设 img1, img2 是两个…...
17、ConvMixer模型原理及其PyTorch逐行实现
文章目录 1. 重点2. 思维导图 1. 重点 patch embedding : 将图形分割成不重叠的块作为图片样本特征depth wise point wise new conv2d : 将传统的卷积转换成通道隔离卷积和像素空间隔离两个部分,在保证精度下降不多的情况下大大减少参数量 2. 思维导图 后续再整…...
Spring整合Redis基本操作步骤
Spring 整合 Redis 操作步骤总结 1. 添加依赖 首先,在 pom.xml 文件中添加必要的 Maven 依赖。Redis 相关的依赖包括 Spring Boot 的 Redis 启动器和 fastjson(如果需要使用 Fastjson 作为序列化工具): <!-- Spring Boot Re…...
STM32使用SFUD库驱动W25Q64
SFUD简介 SFUD是一个通用SPI Flash驱动库,通过SFUD可以库轻松完成对SPI Flash的读/擦/写的基本操作,而不用自己去看手册,写代码造轮子。但是SFUD的功能不仅仅于此:①通过SFUD库可以实现在一个项目中对多个Flash的同时驱动&#x…...
ArKTS基础组件
一.AlphabetIndexer 可以与容器组件联动用于按逻辑结构快速定位容器显示区域的组件。 子组件 color:设置文字颜色。 参数名类型必填说明valueResourceColor是 文字颜色。 默认值:0x99182431。 selectedColor:设置选中项文字颜色。 参数名类型必填说明valueRes…...
如何理解TCP/IP协议?如何理解TCP/IP协议是什么?
理解TCP/IP协议 1. 什么是TCP/IP协议? TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是一组用于实现网络通信的协议,广泛用于互联网和局域网中。TCP/IP协议栈由一系列协议组成,规定了计算机如何在网络中发送和接收数据。它通常被用来…...
如何使用 Python 连接 SQLite 数据库?
SQLite是一种轻量级的嵌入式数据库,广泛应用于各种应用程序中。 Python提供了内置的sqlite3模块,使得连接和操作SQLite数据库变得非常简单。 下面我将详细介绍如何使用sqlite3模块来连接SQLite数据库,并提供一些实际开发中的建议和注意事项…...
【博弈模型】古诺模型、stackelberg博弈模型、伯特兰德模型、价格领导模型
博弈模型 1、古诺模型(cournot)(1)假设(2)行为分析(3)经济后果(4)例题 2、stackelberg博弈模型(产量领导模型)(1ÿ…...
单片机:实现花样灯数码管的显示(附带源码)
单片机实现花样灯数码管显示 数码管(七段数码管)广泛用于数字显示,例如时钟、计数器、温度计等设备。在本项目中,我们将使用单片机实现花样灯数码管的显示效果。所谓花样灯显示是指通过控制数码管上的各个段位,以不同…...
什么是芯片电阻
有人把Chip Resistor翻译成“芯片电阻”,我觉得翻译成“贴片电阻”或“片状电阻”更合适。有些厂商也称之为”电阻片”,英文写作Resistor Chip。比如:Thick film resistor chips(厚膜电阻片)、Thin film resistor chip…...
【C++】sophus : geometry.hpp 位姿(SE2 和 SE3)和(2D 直线\3D 平面)转换函数 (五)
这段代码定义了一系列在位姿(SE2 和 SE3)和几何实体(2D 直线和 3D 平面)之间进行转换的函数。它利用了 Sophus 库中已有的旋转表示(SO2 和 SO3)。 以下是函数的详细解释: 1. SO2 与直线…...
moment()获取时间
moment 是一个 JavaScript 日期处理类库。 使用: //安装 moment npm install moment -- save引用 //在main.js中全局引入 import moment from "moment"设定moment区域为中国 //import 方式 import moment/locale/zh-cn moment.locale(zh-cn); 挂载全…...
Azure虚拟机非托管磁盘大小调整
想要扩容一个Azure VM 的磁盘空间,门户里面竟然无法扩展,点点鼠标就完事的时代在离去,微软越来不想微软。 在门户里面即便使用Azure Cli命令行也不行。 PS /home/gpchina> az disk list [] 返回为空,根本没有返回磁盘。 不过使…...
流匹配模型[Flow Matching]
流匹配模型:概念、优缺点与扩散模型的对比 在生成建模领域,流匹配模型(Flow Matching)是一种通过学习流场将初始分布(通常是高斯噪声)变换为目标分布的新型框架。本文将对流匹配模型的概念、与扩散模型的联…...
Unix 和 Windows 的有趣比较
Unix 和 Windows NT 比较 来源于这两本书,把两本书对照来读,发现很多有意思的地方: 《Unix 传奇》 https://book.douban.com/subject/35292726/ 《观止 微软创建NT和未来的夺命狂奔 》 Showstopper!: The Breakneck Race to Create Windows…...
算法(三)——贪心算法
文章目录 定义基本原理基本思路优缺点优点缺点 经典案例及解析找零问题问题描述贪心思路算法解析java代码示例 活动选择问题问题描述贪心思路算法解析java代码示例 车辆路径问题问题描述贪心思路算法分析java代码示例 定义 贪心算法是指在求解问题时,总是做出在当前…...
LeetCode 704.二分查找
LeetCode 704.二分查找 思路🧐: 在本篇以及之后几篇的博客中,博主将会用二分法进行解答,以此巩固二分题型。二分法一般用于具有二段性的数据中使用。比如该题为有序数组,需要我们查找一个目标值target,分析…...
Linux介绍与安装CentOS 7操作系统
什么是操作系统 操作系统,英⽂名称 Operating System,简称 OS,是计算机系统中必不 可少的基础系统软件,它是 应⽤程序运⾏以及⽤户操作必备的基础环境 ⽀撑,是计算机系统的核⼼。 操作系统的作⽤是管理和控制计算机系…...
使用 rbenv 切换 Ruby 版本
1. 查看当前 Ruby 版本 首先,查看当前系统中安装的 Ruby 版本: ruby -v如果你已经安装了 rbenv,可以列出通过 rbenv 安装的 Ruby 版本: rbenv versions2. 安装 Ruby 版本 如果你想安装新的 Ruby 版本,使用以下命令…...
ObsPy终极指南:Python地震数据处理从入门到精通
ObsPy终极指南:Python地震数据处理从入门到精通 【免费下载链接】obspy ObsPy: A Python Toolbox for seismology/seismological observatories. 项目地址: https://gitcode.com/gh_mirrors/ob/obspy 如果你正在寻找一个强大的Python工具来处理地震数据&…...
2026年毕业论文写作避坑:学术AI工具怎么选才靠谱?
每到开题季,后台总会收到相似的问题:现在AI这么强,写论文到底该用哪个?不少同学的教训是——随便找个通用聊天AI,输入题目“一键生成”几万字,结果查重不过、AI检测亮红灯、参考文献全是编的,导…...
突破暗黑2单机限制:d2s-editor存档修改工具全解析
突破暗黑2单机限制:d2s-editor存档修改工具全解析 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾在暗黑破坏神2的世界中,为了一件心仪的装备而反复刷怪数小时?是否因角色属性点分配失…...
打卡信奥刷题(3054)用C++实现信奥题 P6747 『MdOI R3』Teleport
P6747 『MdOI R3』Teleport 题目背景 凯瑞甘从帝国的围攻下,击毁了大天使号,乘着雷诺的飞船逃了出来,到了休伯利安号上。 “吉米?”凯瑞甘着急地四处寻找着。 “很抱歉,我们没能救出他”马特霍纳向凯瑞甘走来。 “你丢…...
AMD Ryzen处理器深度调试完全指南:5步掌握SMUDebugTool核心调优技巧
AMD Ryzen处理器深度调试完全指南:5步掌握SMUDebugTool核心调优技巧 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址…...
hadoop+Spark+django基于Spark的影视作品排行榜数据分析和可视化
前言 本研究基于 Spark 框架,构建了一套与可视化系统,旨在为影视行业相关方提供有力支持。研究结合了网络爬虫、Spark 框架、Vue 和 Echarts 等技术,并采用文献研究法展开。 在数据采集阶段,使用 Python 爬虫从多个数据源获取…...
React自定义Hook开发:解锁逻辑复用的终极指南
React自定义Hook开发:解锁逻辑复用的终极指南 【免费下载链接】react-fundamentals Material for my React Fundamentals Workshop 项目地址: https://gitcode.com/gh_mirrors/re/react-fundamentals React自定义Hook是提升组件逻辑复用能力的核心技术&#…...
OpenClaw学习助手:Qwen2.5-VL-7B自动解析教材插图
OpenClaw学习助手:Qwen2.5-VL-7B自动解析教材插图 1. 为什么需要AI学习助手 作为一名经常需要阅读大量技术文档的开发者,我发现自己经常陷入"读得快忘得更快"的困境。特别是遇到包含复杂图表和公式的教材时,手动整理关键信息要耗…...
Step3-VL-10B-Base模型效果边界测试:挑战复杂场景与对抗样本
Step3-VL-10B-Base模型效果边界测试:挑战复杂场景与对抗样本 最近在深度体验Step3-VL-10B-Base这个多模态大模型,它处理常规的图文任务确实很有一套,无论是看图说话还是基于图片的问答,表现都相当稳健。但作为一个喜欢“折腾”的…...
Nanbeige像素冒险聊天终端:从start.sh到supervisorctl的完整使用流程
Nanbeige像素冒险聊天终端:从start.sh到supervisorctl的完整使用流程 1. 项目概览与环境准备 Nanbeige 4.1-3B像素冒险聊天终端是一款融合复古游戏美学与AI对话功能的创新工具。这套系统采用Streamlit框架构建,通过精心设计的像素风格界面,…...
