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

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 : 将传统的卷积转换成通道隔离卷积和像素空间隔离两个部分&#xff0c;在保证精度下降不多的情况下大大减少参数量 2. 思维导图 后续再整…...

Spring整合Redis基本操作步骤

Spring 整合 Redis 操作步骤总结 1. 添加依赖 首先&#xff0c;在 pom.xml 文件中添加必要的 Maven 依赖。Redis 相关的依赖包括 Spring Boot 的 Redis 启动器和 fastjson&#xff08;如果需要使用 Fastjson 作为序列化工具&#xff09;&#xff1a; <!-- Spring Boot Re…...

STM32使用SFUD库驱动W25Q64

SFUD简介 SFUD是一个通用SPI Flash驱动库&#xff0c;通过SFUD可以库轻松完成对SPI Flash的读/擦/写的基本操作&#xff0c;而不用自己去看手册&#xff0c;写代码造轮子。但是SFUD的功能不仅仅于此&#xff1a;①通过SFUD库可以实现在一个项目中对多个Flash的同时驱动&#x…...

ArKTS基础组件

一.AlphabetIndexer 可以与容器组件联动用于按逻辑结构快速定位容器显示区域的组件。 子组件 color:设置文字颜色。 参数名类型必填说明valueResourceColor是 文字颜色。 默认值&#xff1a;0x99182431。 selectedColor:设置选中项文字颜色。 参数名类型必填说明valueRes…...

如何理解TCP/IP协议?如何理解TCP/IP协议是什么?

理解TCP/IP协议 1. 什么是TCP/IP协议? TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是一组用于实现网络通信的协议,广泛用于互联网和局域网中。TCP/IP协议栈由一系列协议组成,规定了计算机如何在网络中发送和接收数据。它通常被用来…...

如何使用 Python 连接 SQLite 数据库?

SQLite是一种轻量级的嵌入式数据库&#xff0c;广泛应用于各种应用程序中。 Python提供了内置的sqlite3模块&#xff0c;使得连接和操作SQLite数据库变得非常简单。 下面我将详细介绍如何使用sqlite3模块来连接SQLite数据库&#xff0c;并提供一些实际开发中的建议和注意事项…...

【博弈模型】古诺模型、stackelberg博弈模型、伯特兰德模型、价格领导模型

博弈模型 1、古诺模型&#xff08;cournot&#xff09;&#xff08;1&#xff09;假设&#xff08;2&#xff09;行为分析&#xff08;3&#xff09;经济后果&#xff08;4&#xff09;例题 2、stackelberg博弈模型&#xff08;产量领导模型&#xff09;&#xff08;1&#xff…...

单片机:实现花样灯数码管的显示(附带源码)

单片机实现花样灯数码管显示 数码管&#xff08;七段数码管&#xff09;广泛用于数字显示&#xff0c;例如时钟、计数器、温度计等设备。在本项目中&#xff0c;我们将使用单片机实现花样灯数码管的显示效果。所谓花样灯显示是指通过控制数码管上的各个段位&#xff0c;以不同…...

什么是芯片电阻

有人把Chip Resistor翻译成“芯片电阻”&#xff0c;我觉得翻译成“贴片电阻”或“片状电阻”更合适。有些厂商也称之为”电阻片”&#xff0c;英文写作Resistor Chip。比如&#xff1a;Thick film resistor chips&#xff08;厚膜电阻片&#xff09;、Thin film resistor chip…...

【C++】sophus : geometry.hpp 位姿(SE2 和 SE3)和(2D 直线\3D 平面)转换函数 (五)

这段代码定义了一系列在位姿&#xff08;SE2 和 SE3&#xff09;和几何实体&#xff08;2D 直线和 3D 平面&#xff09;之间进行转换的函数。它利用了 Sophus 库中已有的旋转表示&#xff08;SO2 和 SO3&#xff09;。 以下是函数的详细解释&#xff1a; 1. SO2 与直线&#xf…...

moment()获取时间

moment 是一个 JavaScript 日期处理类库。 使用&#xff1a; //安装 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 的磁盘空间&#xff0c;门户里面竟然无法扩展&#xff0c;点点鼠标就完事的时代在离去&#xff0c;微软越来不想微软。 在门户里面即便使用Azure Cli命令行也不行。 PS /home/gpchina> az disk list [] 返回为空&#xff0c;根本没有返回磁盘。 不过使…...

流匹配模型[Flow Matching]

流匹配模型&#xff1a;概念、优缺点与扩散模型的对比 在生成建模领域&#xff0c;流匹配模型&#xff08;Flow Matching&#xff09;是一种通过学习流场将初始分布&#xff08;通常是高斯噪声&#xff09;变换为目标分布的新型框架。本文将对流匹配模型的概念、与扩散模型的联…...

Unix 和 Windows 的有趣比较

Unix 和 Windows NT 比较 来源于这两本书&#xff0c;把两本书对照来读&#xff0c;发现很多有意思的地方&#xff1a; 《Unix 传奇》 https://book.douban.com/subject/35292726/ 《观止 微软创建NT和未来的夺命狂奔 》 Showstopper!: The Breakneck Race to Create Windows…...

算法(三)——贪心算法

文章目录 定义基本原理基本思路优缺点优点缺点 经典案例及解析找零问题问题描述贪心思路算法解析java代码示例 活动选择问题问题描述贪心思路算法解析java代码示例 车辆路径问题问题描述贪心思路算法分析java代码示例 定义 贪心算法是指在求解问题时&#xff0c;总是做出在当前…...

LeetCode 704.二分查找

LeetCode 704.二分查找 思路&#x1f9d0;&#xff1a; 在本篇以及之后几篇的博客中&#xff0c;博主将会用二分法进行解答&#xff0c;以此巩固二分题型。二分法一般用于具有二段性的数据中使用。比如该题为有序数组&#xff0c;需要我们查找一个目标值target&#xff0c;分析…...

Linux介绍与安装CentOS 7操作系统

什么是操作系统 操作系统&#xff0c;英⽂名称 Operating System&#xff0c;简称 OS&#xff0c;是计算机系统中必不 可少的基础系统软件&#xff0c;它是 应⽤程序运⾏以及⽤户操作必备的基础环境 ⽀撑&#xff0c;是计算机系统的核⼼。 操作系统的作⽤是管理和控制计算机系…...

使用 rbenv 切换 Ruby 版本

1. 查看当前 Ruby 版本 首先&#xff0c;查看当前系统中安装的 Ruby 版本&#xff1a; ruby -v如果你已经安装了 rbenv&#xff0c;可以列出通过 rbenv 安装的 Ruby 版本&#xff1a; rbenv versions2. 安装 Ruby 版本 如果你想安装新的 Ruby 版本&#xff0c;使用以下命令…...

ObsPy终极指南:Python地震数据处理从入门到精通

ObsPy终极指南&#xff1a;Python地震数据处理从入门到精通 【免费下载链接】obspy ObsPy: A Python Toolbox for seismology/seismological observatories. 项目地址: https://gitcode.com/gh_mirrors/ob/obspy 如果你正在寻找一个强大的Python工具来处理地震数据&…...

2026年毕业论文写作避坑:学术AI工具怎么选才靠谱?

每到开题季&#xff0c;后台总会收到相似的问题&#xff1a;现在AI这么强&#xff0c;写论文到底该用哪个&#xff1f;不少同学的教训是——随便找个通用聊天AI&#xff0c;输入题目“一键生成”几万字&#xff0c;结果查重不过、AI检测亮红灯、参考文献全是编的&#xff0c;导…...

突破暗黑2单机限制:d2s-editor存档修改工具全解析

突破暗黑2单机限制&#xff1a;d2s-editor存档修改工具全解析 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾在暗黑破坏神2的世界中&#xff0c;为了一件心仪的装备而反复刷怪数小时&#xff1f;是否因角色属性点分配失…...

打卡信奥刷题(3054)用C++实现信奥题 P6747 『MdOI R3』Teleport

P6747 『MdOI R3』Teleport 题目背景 凯瑞甘从帝国的围攻下&#xff0c;击毁了大天使号&#xff0c;乘着雷诺的飞船逃了出来&#xff0c;到了休伯利安号上。 “吉米&#xff1f;”凯瑞甘着急地四处寻找着。 “很抱歉&#xff0c;我们没能救出他”马特霍纳向凯瑞甘走来。 “你丢…...

AMD Ryzen处理器深度调试完全指南:5步掌握SMUDebugTool核心调优技巧

AMD Ryzen处理器深度调试完全指南&#xff1a;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 框架&#xff0c;构建了一套与可视化系统&#xff0c;旨在为影视行业相关方提供有力支持。研究结合了网络爬虫、Spark 框架、Vue 和 Echarts 等技术&#xff0c;并采用文献研究法展开。 在数据采集阶段&#xff0c;使用 Python 爬虫从多个数据源获取…...

React自定义Hook开发:解锁逻辑复用的终极指南

React自定义Hook开发&#xff1a;解锁逻辑复用的终极指南 【免费下载链接】react-fundamentals Material for my React Fundamentals Workshop 项目地址: https://gitcode.com/gh_mirrors/re/react-fundamentals React自定义Hook是提升组件逻辑复用能力的核心技术&#…...

OpenClaw学习助手:Qwen2.5-VL-7B自动解析教材插图

OpenClaw学习助手&#xff1a;Qwen2.5-VL-7B自动解析教材插图 1. 为什么需要AI学习助手 作为一名经常需要阅读大量技术文档的开发者&#xff0c;我发现自己经常陷入"读得快忘得更快"的困境。特别是遇到包含复杂图表和公式的教材时&#xff0c;手动整理关键信息要耗…...

Step3-VL-10B-Base模型效果边界测试:挑战复杂场景与对抗样本

Step3-VL-10B-Base模型效果边界测试&#xff1a;挑战复杂场景与对抗样本 最近在深度体验Step3-VL-10B-Base这个多模态大模型&#xff0c;它处理常规的图文任务确实很有一套&#xff0c;无论是看图说话还是基于图片的问答&#xff0c;表现都相当稳健。但作为一个喜欢“折腾”的…...

Nanbeige像素冒险聊天终端:从start.sh到supervisorctl的完整使用流程

Nanbeige像素冒险聊天终端&#xff1a;从start.sh到supervisorctl的完整使用流程 1. 项目概览与环境准备 Nanbeige 4.1-3B像素冒险聊天终端是一款融合复古游戏美学与AI对话功能的创新工具。这套系统采用Streamlit框架构建&#xff0c;通过精心设计的像素风格界面&#xff0c;…...