多个Echart遍历生成 / 词图云

echart官网

安装

如果版本报错推荐安装以下版本
npm install echarts@4.8.0 --savenpm uninstall echarts//这个是卸载命令以下安装成功后是局部引入:

多个Echart遍历生成

vue3+echart
单个页面多个图表循环渲染展示:

在这里插入图片描述

<template><div class="main"><div class="section"><div class="section" v-for="(chartOption, index) in chartOptions" :key="index"><div :ref="el => chartRefs[index] = el" style="width:1400px;height: 400px"></div></div><!-- 隐藏表格 --><!-- <div  class="table-section"><el-dialog v-model="showTable" title="" width="500" align-center><el-table :data="tableData" style="width: 100%" ><el-table-column prop="name" label="名称" /><el-table-column prop="value" label="值" /><el-table-column  label="编辑" ><template #default="scope"><el-button type="primary" @click="btnView(scope.row)">查看</el-button></template></el-table-column></el-table></el-dialog></div> --></div></div>
</template><script lang='ts'>
import { ref, reactive, toRefs, onUnmounted, onMounted } from "vue";
import { useRouter, useRoute } from "vue-router"; //引入路由
import * as echarts from "echarts";
export default {name: "",setup() {let router = useRouter(),route = useRoute();// 图标数据const chartOptions: any = [{title: [{left: "left",text: "违规命中统计",}],legend: {data: ['违规规则', 'Union Ads']},xAxis: {type: "category",data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],},yAxis: {type: "value",},series: [{ name: '违规规则',data: [120, 200, 150, 80, 70, 110, 130],type: "bar",itemStyle: {color: "#23e3fb", },},],tooltip: {// 这里暂时不设置 formatter}},{title: [{left: "left",text: "违规门店统计",}],legend: {data: ['违规门店', 'Union Ads']},tooltip: {// 这里暂时不设置 formatter},xAxis: {type: "category",data: ["1", "2", "3", "4", "5", "6", "7"],},yAxis: {type: "value",},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: "bar",name: '违规门店',itemStyle: {color: "#23e3fb", },},],},{title: [{left: "left",text: "违规坐席统计",}],legend: {data: ['违规坐席', 'Union Ads']},tooltip: {// 这里暂时不设置 formatter},xAxis: {type: "category",data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],},yAxis: {type: "value",},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: "bar",name:'违规坐席'},],},];const data: any = reactive({});const chartRefs = ref<HTMLDivElement[]>([]);const charts = ref<echarts.ECharts[]>([]);onMounted(() => {chartOptions.forEach((option, index) => {if (chartRefs.value[index]) {const chart = echarts.init(chartRefs.value[index]);const finalOption = {...option,tooltip: {...option.tooltip,}};chart.setOption(finalOption);charts.value[index] = chart;}});});onUnmounted(() => {charts.value.forEach(chart => {if (chart) {chart.dispose();}});});const refData = toRefs(data);return {...refData,chartOptions,chartRefs,};},
};
</script><style lang="scss" scoped>
</style>

点击单个图表可显示弹框

点击图表单个柱状图显示对应的表格弹框操作

在这里插入图片描述

<template><div class="main"><div class="section"><div class="section" v-for="(chartOption, index) in chartOptions" :key="index"><div :ref="el => chartRefs[index] = el" style="width:1400px;height: 400px"></div></div><!-- 隐藏表格 --><div  class="table-section"><el-dialog v-model="showTable" title="" width="500" align-center><el-table :data="tableData" style="width: 100%" ><el-table-column prop="name" label="名称" /><el-table-column prop="value" label="值" /><el-table-column  label="编辑" ><template #default="scope"><el-button type="primary" @click="btnView(scope.row)">查看</el-button></template></el-table-column></el-table></el-dialog></div></div></div>
</template>
<script lang='ts'>
import { ref, reactive, toRefs, onUnmounted, onMounted } from "vue";
import { useRouter, useRoute } from "vue-router"; //引入路由
import * as echarts from "echarts";
export default {name: "",setup() {let router = useRouter(),route = useRoute();// 图标数据const chartOptions: any = [{title: [{left: "left",text: "违规命中统计",}],legend: {data: ['违规规则', 'Union Ads']},xAxis: {type: "category",data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],},yAxis: {type: "value",},series: [{ name: '违规规则',data: [120, 200, 150, 80, 70, 110, 130],type: "bar",itemStyle: {color: "#23e3fb", },},],tooltip: {// 这里暂时不设置 formatter}},{title: [{left: "left",text: "违规门店统计",}],legend: {data: ['违规门店', 'Union Ads']},tooltip: {// 这里暂时不设置 formatter},xAxis: {type: "category",data: ["1", "2", "3", "4", "5", "6", "7"],},yAxis: {type: "value",},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: "bar",name: '违规门店',itemStyle: {color: "#23e3fb", },},],},{title: [{left: "left",text: "违规坐席统计",}],legend: {data: ['违规坐席', 'Union Ads']},tooltip: {// 这里暂时不设置 formatter},xAxis: {type: "category",data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],},yAxis: {type: "value",},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: "bar",name:'违规坐席'},],},];const initParams = (params: any) => {let tooltipContent = '';const bullet = '<span style="display: inline-block; width: 10px; height: 10px; background-color:#23e3fb; border-radius: 50%; margin-right: 5px;"></span>';if (Array.isArray(params)) {// 多个数据项params.forEach((param) => {tooltipContent += `${param.seriesName}<br/>${bullet}${param.name} &nbsp; ${param.value}<br/>`;});} else {// 单个数据项tooltipContent += `${params.seriesName}<br/>${bullet}${params.name} &nbsp; ${params.value}<br/>`;}return tooltipContent;};const data: any = reactive({// chartOptions:chartOptions,//也可在这里赋值使用(也可定义并暴露出去)showTable:false,//点击图标显示弹框表格tableData:[]=[],//弹框表格数据});const chartRefs = ref<HTMLDivElement[]>([]);const charts = ref<echarts.ECharts[]>([]);const handleChartClick = (params: any) => {data.showTable = true;data.tableData = [{ name: params.seriesName, value: params.value },{ name: '日期', value: params.name },// 可以根据需要添加更多字段];};onMounted(() => {chartOptions.forEach((option, index) => {if (chartRefs.value[index]) {const chart = echarts.init(chartRefs.value[index]);const finalOption = {...option,tooltip: {...option.tooltip,formatter: initParams}};chart.setOption(finalOption);chart.on('click', handleChartClick);charts.value[index] = chart;}});});onUnmounted(() => {charts.value.forEach(chart => {if (chart) {chart.dispose();}});});const refData = toRefs(data);return {...refData,chartOptions,chartRefs,initParams};},
};
</script><style lang="scss" scoped>
</style>

词图云

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/64571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW伸缩臂参数监控系统

LabVIEW开发伸缩臂越野叉车参数监控系统主要应用于工程机械中的越野叉车&#xff0c;以提高车辆的作业效率和故障诊断能力。系统通过PEAK CAN硬件接口和LabVIEW软件平台实现对叉车作业参数的实时监控和故障分析&#xff0c;具有良好的实用性和推广价值。 系统组成 系统主要由P…

【FFmpeg】解封装 ① ( 封装与解封装流程 | 解封装函数简介 | 查找码流标号和码流参数信息 | 使用 MediaInfo 分析视频文件 )

文章目录 一、解封装1、封装与解封装流程2、解封装 常用函数 二、解封装函数简介1、avformat_alloc_context 函数2、avformat_free_context 函数3、avformat_open_input 函数4、avformat_close_input 函数5、avformat_find_stream_info 函数6、av_read_frame 函数7、avformat_s…

YOLOv8目标检测——详细记录使用ONNX Runtime进行推理部署C++/Python实现

概述 在之前博客中有介绍YOLOv8从环境安装到训练的完整过程&#xff0c;本节主要介绍ONNX Runtime的原理以及使用其进行推理加速&#xff0c;使用Python、C两种编程语言来实现。 https://blog.csdn.net/MariLN/article/details/143924548?spm1001.2014.3001.5501 1. ONNX Ru…

python学opencv|读取图像(十六)修改HSV图像HSV值

【1】引言 前序学习进程中&#xff0c;我们已经掌握了对HSV通道和BGR通道的拆分和合并&#xff0c;并通过自由组合的形式&#xff0c;获得了和初始图像完全不一样的新图像&#xff0c;相关文章可以参考下述链接&#xff1a; python学opencv|读取图像&#xff08;十四&#xf…

CEF127 编译指南 MacOS 篇 - 编译 CEF(六)

1. 引言 经过前面的准备工作&#xff0c;我们已经完成了所有必要的环境配置。本文将详细介绍如何在 macOS 系统上编译 CEF127。通过正确的编译命令和参数配置&#xff0c;我们将完成 CEF 的构建工作&#xff0c;最终生成可用的二进制文件。 2. 编译前准备 2.1 确认环境变量 …

关于小程序内嵌h5打开新的小程序

关于小程序内嵌h5打开新的小程序 三种方式 https://juejin.cn/post/7055551463489011749 只依赖于h5本身的就是 https://huaweicloud.csdn.net/64f97ebb6b896f66024ca16c.html https://juejin.cn/post/7055551463489011749 navigateToMiniProgram 故小程序webview里的h5无法…

开发平台接口规范:北斗终端->北斗三号卫星->指挥机(北斗终端)->北斗短报文融合平台->客户平台(上行)| 时空信息产品

文章目录 引言I 技术架构和业务流程技术架构北斗终端信息流II 渠道接口验证签名白名单IP渠道配置表设计III 其他辅助功能TCP 发送消息到消息中心nginx转发网关服务异常捕获日志采集IV 知识扩展对请求参数进行校验引言 开发平台的应用场景:平台需要开发能力给下游平台需要接收上…

知识分享第三十天-力扣343.(整数拆分)

343 整数拆分 给定一个正整数 n&#xff0c;将其拆分为至少两个正整数的和&#xff0c;并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2: 输入: 10 输出: 36 解释: 10 3 3 4, 3 3 4 36。 说明: 你可…

搭建Tomcat(六)---Response的实现

目录 引入 一、前端项目容器的搭建 重建项目: 1.创建一个新的项目&#xff1a; 2.创建HTML文件 3.将先前编写的所有tomcatJava文件挪过来 二、配置java文件 1.重启一下MyTomcat 2.配置两个工具包 ①FileUtil ②ResponseUtil&#xff08;响应头&#xff09; 三、处理…

机械鹦鹉与真正的智能:大语言模型推理能力的迷思

编者按&#xff1a; 大语言模型真的具备推理能力吗&#xff1f;我们是否误解了"智能"的本质&#xff0c;将模式匹配误认为是真正的推理&#xff1f; 本文深入探讨了大语言模型&#xff08;LLMs&#xff09;是否真正具备推理能力这一前沿科学问题&#xff0c;作者的核…

.net winform 实现CSS3.0 泼墨画效果

效果图 代码 private unsafe void BlendImages1(Bitmap img1, Bitmap img2) {// 确定两个图像的重叠区域Rectangle rect new Rectangle(0, 0,Math.Min(img1.Width, img2.Width),Math.Min(img1.Height, img2.Height));// 创建输出图像&#xff0c;尺寸为重叠区域大小Bitmap b…

短视频矩阵:构建多平台曝光的高效运营网络

在当今这个瞬息万变的数字化时代&#xff0c;短视频以其独特的魅力迅速占领了人们的视野&#xff0c;成为信息传播与娱乐消遣的重要一环。随着短视频平台的不断增多和用户群体的日益庞大&#xff0c;如何精准高效地利用短视频进行品牌推广和产品营销&#xff0c;成为了众多企业…

ubuntu+ros新手笔记(三):21讲没讲到的MoveIt2

系统ubuntu22.04 ros2 humble 1 安装MoveIt2 安装参照在ROS2中&#xff0c;通过MoveIt2控制Gazebo中的自定义机械手 安装 MoveIt2可以选择自己编译源码安装&#xff0c;或者直接从二进制安装。 个人建议直接二进制安装&#xff0c;可以省很多事。 sudo apt install ros-humbl…

DotNetBrowser 3.0.0 正式发布!

&#x1f6e0;️ 重要消息&#xff1a;DotNetBrowser 3.0.0 正式发布&#xff01; 我们很高兴向您介绍全新的 DotNetBrowser 3.0.0 版本。此次更新带来了多项重要功能与优化&#xff0c;进一步提升了 Web 开发的效率和体验。 &#x1f4e2; DotNetBrowser 3.0.0 包含哪些新功…

在 Visual Studio Code 中编译、调试和执行 Makefile 工程 llama2.c

在 Visual Studio Code 中编译、调试和执行 Makefile 工程 llama2.c 1. Installing the extension (在 Visual Studio Code 中安装插件)1.1. Extensions for Visual Studio Code1.2. C/C1.2.1. Pre-requisites 1.3. Makefile Tools 2. Configuring your project (配置项目)2.1.…

EfficientNet:对模型深度、宽度和分辨率的混合缩放策略

论文&#xff1a;https://arxiv.org/abs/1905.11946 项目&#xff1a;https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet Pytorch实现&#xff1a;EfficientNet模型Pytorch版本具体实现-CSDN博客 一、概况 1、概述&#xff1a; 这张图可以清晰明…

大模型学习笔记------SAM模型详解与思考

大模型学习笔记------SAM模型详解与思考 1、SAM框架概述2、Segment Anything Task3、Segment Anything Model SAM模型是Meta 提出的分割一切模型&#xff08;Segment Anything Model&#xff0c;SAM&#xff09;突破了分割界限&#xff0c;极大地促进了计算机视觉基础模型的发展…

【嵌入式软件】跑开发板的前置服务配置

在嵌入式开发中,通常需要在 开发板和主机之间共享、传输和挂载文件。 这篇文章是关于如何在 Ubuntu 中配置 Samba、TFTP 和 NFS 协议的详细步骤。这些协议分别用于远程文件共享、文件传输和内核挂载文件系统。 如何安装协议: 参考:ubuntu18配置:详细的内容我手写了一份文档。…

02、服务器的分类和开发项目流程

硬件介绍 1、服务器分类2.开发流程 1、服务器分类 1.1 服务器分类 1u服务器&#xff08;u表示服务器的厚度&#xff09; 1U4.45cm&#xff1b; 4u服务器&#xff08;u表示服务器的厚度&#xff09; &#xff0c; 服务器有两个电源模块&#xff0c;接在不同的电源&#xff0c;…

图像生成工具WebUI

介绍 Stable Diffusion WebUI&#xff08;AUTOMATIC1111&#xff0c;简称A1111&#xff09;是一个为高级用户设计的图形用户界面&#xff08;GUI&#xff09;&#xff0c;它提供了丰富的功能和灵活性&#xff0c;以满足复杂和高级的图像生成需求。如今各种人工智能满天飞&…