栏目二:Echart绘制动态折线图+柱状图

栏目二:Echart绘制动态折线图+柱状图

配置了一个ECharts图表,该图表集成了数据区域缩放、双Y轴显示及多种图表类型(折线图、柱状图、象形柱图)。图表通过X轴数据展示,支持平滑折线展示比率数据并自动添加百分比标识,柱状图以渐变色展示评论数量,而象形柱图则以矩形形式展示点赞数量,增强了视觉表现力。整体设计注重细节处理,如坐标轴指示器、数据点形状及标签格式化等,旨在为用户提供直观、丰富的数据可视化体验。

效果图:
在这里插入图片描述
核心代码:

let option = {  // 配置提示框组件  tooltip: {  trigger: 'axis', // 触发类型:坐标轴触发  axisPointer: {  type: 'shadow', // 坐标轴指示器类型为阴影  label: {  show: true, // 显示坐标轴指示器的标签  backgroundColor: '#333' // 标签的背景色  }  },  // 这里有一个被注释掉的 formatter 配置,用于自定义提示框内容  // ...(formatter 配置被省略)  },  // 配置数据区域缩放组件  dataZoom: {  type: 'inside', // 缩放组件类型:内置在坐标系中  start: 0, // 初始时,数据窗口的起始百分比  end: 95 // 初始时,数据窗口的结束百分比  },  // 配置 X 轴  xAxis: {  data: x, // X 轴数据  axisLine: {  lineStyle: {  color: "#ccc" // X 轴线的颜色  }  },  show: true // 显示 X 轴  },  // 配置 Y 轴,这里配置了两个 Y 轴  yAxis: [{  splitLine: { show: false }, // 不显示分割线  axisLine: {  lineStyle: {  color: "#ccc" // Y 轴线的颜色  }  },  name: "赞评数量" // Y 轴名称  }, {  // 第二个 Y 轴的配置  splitLine: { show: false },  axisLine: {  lineStyle: {  color: "#ccc"  }  },  name: "比率/%", // Y 轴名称  axisLabel: {  formatter: '{value} %' // Y 轴标签格式化,添加百分比符号  }  }],  // 配置多个系列  series: [{  name: '比率',  type: 'line', // 类型为折线图  smooth: true, // 线条平滑  showAllSymbol: true, // 显示所有数据点  symbol: 'emptyCircle', // 数据点形状  symbolSize: 15, // 数据点大小  yAxisIndex: 1, // 使用第二个 Y 轴  data: y3, // 数据  // 为该系列的 tooltip 自定义显示  tooltip: {  valueFormatter: function (value) {  return value + '%'; // 为 tooltip 值添加百分比符号  }  }  }, {  name: '评论',  type: 'bar', // 类型为柱状图  barWidth: 30, // 柱状图的宽度  itemStyle: {  normal: {  barBorderRadius: 5, // 柱子的圆角  color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [  // 渐变色配置  { offset: 0, color: '#a85d74' },  { offset: 1, color: '#8f5d6c' }  ])  }  },  data: y2 // 数据  }, {  name: '点赞',  type: 'pictorialBar', // 类型为象形柱图  symbol: 'rect', // 形状为矩形  itemStyle: {  normal: {  color: '#279418' // 颜色  }  },  symbolRepeat: true, // 是否重复显示形状  symbolSize: [30, 4], // 形状大小  symbolMargin: 1, // 形状间的间隔  z: -10, // 系列的堆叠顺序  data: y1 // 数据  }]  
};

具体代码如下:

<!-- 第二章:折线图+柱状图+动画 -->
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><!-- 为 ECharts 准备一个定义了宽高的 DOM --><div id="main" style="width: 600px;height:400px;"></div>
</body>
<script src="../js/echarts.min.js"></script>
<script>let x = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'];let y2 = [586, 548, 456, 845, 345, 234, 584, 734, 645, 456, 567, 678];let y3 = [0.5753, 0.2768, 0.7575, 0.6445, 0.3534, 0.4435, 0.6435, 0.3587, 0.4845, 0.6135, 0.4748, 0.6575];let y1 = y2.map(function (item, index) {return Math.round(item / y3[index]);});y3 = y3.map(function (item) {// 保留两位小数return parseFloat((item * 100).toFixed(2));});function changeData(list) {let tmp = list[0]for (let i = 0; i < list.length-1; i++) {list[i] = list[i+1];}list[list.length - 1] = tmp;}function circleCharts(x,y1,y2,y3) {var chartDom = document.getElementById('main');var myChart = echarts.init(chartDom);let option = {  // 配置提示框组件  tooltip: {  trigger: 'axis', // 触发类型:坐标轴触发  axisPointer: {  type: 'shadow', // 坐标轴指示器类型为阴影  label: {  show: true, // 显示坐标轴指示器的标签  backgroundColor: '#333' // 标签的背景色  }  },  // 这里有一个被注释掉的 formatter 配置,用于自定义提示框内容  // ...(formatter 配置被省略)  },  // 配置数据区域缩放组件  dataZoom: {  type: 'inside', // 缩放组件类型:内置在坐标系中  start: 0, // 初始时,数据窗口的起始百分比  end: 95 // 初始时,数据窗口的结束百分比  },  // 配置 X 轴  xAxis: {  data: x, // X 轴数据  axisLine: {  lineStyle: {  color: "#ccc" // X 轴线的颜色  }  },  show: true // 显示 X 轴  },  // 配置 Y 轴,这里配置了两个 Y 轴  yAxis: [{  splitLine: { show: false }, // 不显示分割线  axisLine: {  lineStyle: {  color: "#ccc" // Y 轴线的颜色  }  },  name: "赞评数量" // Y 轴名称  }, {  // 第二个 Y 轴的配置  splitLine: { show: false },  axisLine: {  lineStyle: {  color: "#ccc"  }  },  name: "比率/%", // Y 轴名称  axisLabel: {  formatter: '{value} %' // Y 轴标签格式化,添加百分比符号  }  }],  // 配置多个系列  series: [{  name: '比率',  type: 'line', // 类型为折线图  smooth: true, // 线条平滑  showAllSymbol: true, // 显示所有数据点  symbol: 'emptyCircle', // 数据点形状  symbolSize: 15, // 数据点大小  yAxisIndex: 1, // 使用第二个 Y 轴  data: y3, // 数据  // 为该系列的 tooltip 自定义显示  tooltip: {  valueFormatter: function (value) {  return value + '%'; // 为 tooltip 值添加百分比符号  }  }  }, {  name: '评论',  type: 'bar', // 类型为柱状图  barWidth: 30, // 柱状图的宽度  itemStyle: {  normal: {  barBorderRadius: 5, // 柱子的圆角  color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [  // 渐变色配置  { offset: 0, color: '#a85d74' },  { offset: 1, color: '#8f5d6c' }  ])  }  },  data: y2 // 数据  }, {  name: '点赞',  type: 'pictorialBar', // 类型为象形柱图  symbol: 'rect', // 形状为矩形  itemStyle: {  normal: {  color: '#279418' // 颜色  }  },  symbolRepeat: true, // 是否重复显示形状  symbolSize: [30, 4], // 形状大小  symbolMargin: 1, // 形状间的间隔  z: -10, // 系列的堆叠顺序  data: y1 // 数据  }]  };option && myChart.setOption(option);}setInterval(function () {circleCharts(x,y1,y2,y3);changeData(y2);changeData(y3);changeData(y1);changeData(x);}, 1500);
</script></html>

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

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

相关文章

Docker-2.如何保存数据退出

在使用Docker时&#xff0c;我们常常需要修改容器中的文件&#xff0c;并且希望在容器重启后这些修改能够得到保留。 0.简介 使用Docker时有一个需要注意的问题&#xff1a;当你修改了容器中的文件后&#xff0c;重启容器后这些修改将会被重置&#xff0c;深入研究这个问题。 …

企业间图文档发放:如何在保障安全的同时提升效率?

不管是大型企业&#xff0c;还是小型创业公司&#xff0c;不论企业规模大小&#xff0c;每天都会有大量的图文档发放&#xff0c;对内传输协作和对外发送使用&#xff0c;数据的生产也是企业业务生产力的体现之一。 伴随着业务范围的不断扩大&#xff0c;企业与客户、合作伙伴之…

五子棋双人对战项目(2)——登录模块

目录 一、数据库模块 1、创建数据库 2、使用MyBatis连接并操作数据库 编写后端数据库代码 二、约定前后端交互接口 三、后端代码编写 文件路径如下&#xff1a; UserAPI&#xff1a; UserMapper&#xff1a; 四、前端代码 登录页面 login.html&#xff1a; 注册页面…

ireport 5.1 中文生辟字显示不出来,生成PDF报字体找不到

ireport生成pdf里文字不显示。本文以宋体中文字不显示为例。 问题&#xff1a;由浅入深一步一步分析 问题1、预览正常&#xff0c;但生成pdf中文不显示 报告模板编辑后&#xff0c;预览正常&#xff0c;但生成pdf中文不显示。以下是试验过程&#xff1a; 先编辑好一个报告单模…

在 Docker 版 RStudio 中安装 Seurat V4 的完整教程 (同样适用于普通R环境安装)

在单细胞RNA测序&#xff08;scRNA-seq&#xff09;数据分析领域&#xff0c;Seurat 是一个广泛使用且功能强大的R包&#xff0c;提供了丰富的数据处理和可视化工具。为了简化环境配置和依赖管理&#xff0c;使用Docker来部署RStudio并安装Seurat V4是一种高效且可重复的方法。…

华硕天选笔记本外接音箱没有声音

系列文章目录 文章目录 系列文章目录一.前言二.解决方法第一种方法第二种方法 一.前言 华硕天选笔记本外接音箱没有声音&#xff0c;在插上外接音箱时&#xff0c;系统会自动弹出下图窗口 二.解决方法 第一种方法 在我的电脑上选择 Headphone Speaker Out Headset 这三个选项…

一文上手SpringSecurity【八】

RBAC&#xff08;Role-Based Access Control&#xff09;&#xff0c;基于角色的访问控制。通过用户关联角色&#xff0c;角色关联权限&#xff0c;来间接的为用户赋予权限。 一、RBAC介绍 RBAC&#xff08;Role-Based Access Control&#xff09;&#xff0c;即基于角色的访…

二分查找算法专题(1)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a; 优选算法专题 目录 二分查找算法的介绍 704. 二分查找 34. 在排序数组中查找元素的第一个和 最后一个位置 35. 搜索插入位置 69. x的平…

【光伏混合储能】VSG并网运行,构网型变流器,虚拟同步机仿真

摘要 本文提出了一种基于光伏发电与混合储能系统结合的虚拟同步发电机&#xff08;VSG&#xff09;控制策略&#xff0c;该策略能够在并网运行时稳定电网电压和频率。通过仿真分析&#xff0c;验证了该策略在各种运行工况下的有效性&#xff0c;展示了其在电力系统中的广泛应用…

CORE MVC 过滤器 (筛选器)《2》 TypeFilter、ServiceFilter

TypeFilter、ServiceFilter ServiceFilter vs TypeFilter ServiceFilter和TypeFilter都实现了IFilterFactory ServiceFilter需要对自定义的Filter进行注册&#xff0c;TypeFilter不需要 ServiceFilter的Filter生命周期源自于您如何注册&#xff08;全局、区域&#xff09;&…

SpringCloud-基于Docker和Docker-Compose的项目部署

一、初始化环境 1. 卸载旧版本 首先&#xff0c;卸载可能已存在的旧版本 Docker。如果您不确定是否安装过&#xff0c;可以直接执行以下命令&#xff1a; sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logro…

了解芯片光刻与OPC

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 参考资料&#xff1a; 光刻技术与基本流程 https://www.bilibili.com/video/BV1tP4y1j7BA OPC https://www.bilibili.com/video/BV1o94y1U7Td 论文&#xff1a;计算…

[网络]抓包工具介绍 tcpdump

一、tcpdump tcpdump是一款基于命令行的网络抓包工具&#xff0c;可以捕获并分析传输到和从网络接口流入和流出的数据包。 1.1 安装 tcpdump 通常已经预装在大多数 Linux 发行版中。如果没有安装&#xff0c;可以使用包管理器 进行安装。例如 Ubuntu&#xff0c;可以使用以下…

DBeaver显示PostgreSQL数据库的信息模式

DBeaver连接PostgreSQL数据库后&#xff0c;默认情况下是不加载信息模式的&#xff0c;如果有需要&#xff0c;我们可以通过设置显示信息模式。 具体步骤&#xff1a;点击数据库连接–>右键打开设置–>连接设置–>常规–>导航视图–>自定义–>勾选显示系统对…

宁夏众智科技OA办公系统存在SQL注入漏洞

漏洞描述 宁夏众智科技OA办公系统存在SQL注入漏洞 漏洞复现 POC POST /Account/Login?ACTIndex&CLRHome HTTP/1.1 Host: Content-Length: 45 Cache-Control: max-age0 Origin: http://39.105.48.206 Content-Type: application/x-www-form-urlencoded Upgrade-Insecur…

【在Linux世界中追寻伟大的One Piece】System V共享内存

目录 1 -> System V共享内存 1.1 -> 共享内存数据结构 1.2 -> 共享内存函数 1.2.1 -> shmget函数 1.2.2 -> shmot函数 1.2.3 -> shmdt函数 1.2.4 -> shmctl函数 1.3 -> 实例代码 2 -> System V消息队列 3 -> System V信号量 1 -> Sy…

【MySQL 06】表的增删查改

目录 1.insert 增添数据 1.1单行数据 全列插入 1.2多行数据 指定列插入 1.3插入否则更新 1.4.插入否则替换 2.select查找 2.1 全列查找 2.2指定列查找 2.3查询字段为表达式 2.4为查询结果指定别名 2.5 结果去重 2.6 where条件查询 2.7结果排序 2.8.筛选分页结果…

侧边菜单的展开和折叠

环境准备&#xff1a;Vue3Element-UI Plus <script setup> import {ref} from "vue";// 是否折叠菜单&#xff0c;默认折叠 const isCollapse ref(true)// 退出登录 function logout() {alert(退出) }// 个人中心 function profile() {alert(个人中心) } <…

设计模式、系统设计 record part02

软件设计模式&#xff1a; 1.应对重复发生的问题 2.解决方案 3.可以反复使用 1.本质是面向对象 2.优点很多 1.创建型-创建和使用分离 2.结构型-组合 3.行为型-协作 571123种模式 UML-统一建模语言-Unified Modeling Language 1.可视化&#xff0c;图形化 2.各种图&#xff08;9…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十一集:制作法术系统的回血机制和火球机制

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、制作法术系统的回血机制 1.制作动画以及使用UNITY编辑器编辑2.使用代码和PlaymakerFSM制作回血机制二、制作法术系统的火球机制 1.制作动画以及使用UNITY编…