栏目二: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>
相关文章:
栏目二:Echart绘制动态折线图+柱状图
栏目二:Echart绘制动态折线图柱状图 配置了一个ECharts图表,该图表集成了数据区域缩放、双Y轴显示及多种图表类型(折线图、柱状图、象形柱图)。图表通过X轴数据展示,支持平滑折线展示比率数据并自动添加百分比标识&…...
Gromacs——使用过程中暴露问题分析及学习
gromacs——突变残基蛋白电场MD和基本分析从入门到发SCIENCE:基于Gromacs的蛋白小分子动态模拟全过程解析水溶性蛋白模拟全过程:从准备蛋白结构文件(top、itp、gro文件生成)到模拟数据分析GromacsGROMACS 教程:蛋白配体…...
Webpack模式-Resolve-本地服务器
目录 ResolveMode配置搭本地服务器区分环境配置 Resolve 前面学习时使用了各种各样的模块依赖,这些模块可能来自于自己编写的代码,也可能来自第三方库,在 Webpack 中,resolve 是用于解析模块依赖的配置项,它决定了 We…...
【LLM论文日更】| 通过指令调整进行零样本稠密检索的无监督文本表示学习
论文:https://arxiv.org/pdf/2409.16497代码:暂未开源机构:Amazon AGI、宾夕法尼亚州立大学领域:Dense Retrieval发表:Accepted at DCAI24 workshopCIKM2024 研究背景 研究问题:这篇文章要解决的问题是如…...
02.01、移除重复节点
02.01、[简单] 移除重复节点 1、题目描述 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 2、解题思路 为了实现这一目标,我们可以使用一个哈希表(或集合)来记录已经遇到的节点值,逐步遍历链表并删…...
旅游推荐|旅游推荐系统|基于Springboot+VUE的旅游推荐系统设计与实现(源码+数据库+文档)
旅游推荐系统 目录 基于java的旅游推荐系统设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师…...
github项目--crawl4ai
github项目--crawl4ai 输出html输出markdown格式输出结构化数据与BeautifulSoup的对比 crawl4ai github上这个项目,没记错的话,昨天涨了3000多的star,今天又新增2000star。一款抓取和解析工具,简单写个demo感受下 这里我们使用cra…...
仅有N卡独显的情况下安装ubuntu是遇到的黑屏,加载卡顿等问题
Ubuntu安装的两个阶段都要进行一定的设置来临时禁用掉独显或者ubuntu的通用显卡驱动。 U盘启动阶段 U盘启动阶段要对U盘启动项进行设置,通过BIOS设置第一boot为USB hard disk后可以进到U盘引导项,第一项为 “try or install ubuntu”,倒计时10s后自动进入。 这个时候不要…...
Vite:为什么选 Vite
一、现实问题 在浏览器支持 ES 模块之前,JavaScript 并没有提供原生机制让开发者以模块化的方式进行开发。这也正是我们对 “打包” 这个概念熟悉的原因:使用工具抓取、处理并将我们的源码模块串联成可以在浏览器中运行的文件。 时过境迁,我…...
个人项目简单https服务配置
1.SSL简介 SSL证书是一种数字证书,由受信任的证书颁发机构(CA)颁发,用于在互联网通信中建立加密链接。SSL代表“安全套接层”,是用于在互联网上创建加密链接的协议。SSL证书的主要目的是确保数据传输的安全性和隐私性…...
Rust 函数
Rust 函数 Rust 是一种系统编程语言,以其安全性、并发性和性能而闻名。函数是 Rust 编程语言中的基本构建块,用于封装可重用的代码块。本文将深入探讨 Rust 中的函数,包括其定义、特性、参数、返回值以及高级概念。 函数定义 在 Rust 中&a…...
微信小程序中的 `<block>` 元素:高效渲染与结构清晰的利器
微信小程序中的 <block> 元素:高效渲染与结构清晰的利器 在微信小程序的开发中,<block> 元素扮演着举足轻重的角色。尽管它不会在页面中渲染任何可见的节点,但作为一个逻辑上的容器,<block> 在条件渲染和循环渲…...
选读算法导论5.2 指示器随机变量
为了分析包括包括雇佣分析在内的许多算法,我们将使用指示器随机变量,它为概率和期望之间的转换提供了一个便利的方法,给定一个样本空间S和事件A,那么事件A对应的指示器随机变量: Xa 1 如果A发生 0 如果…...
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
centos9 nginx 版本
centos9 安装 ssh -V OpenSSH_8.7p1, OpenSSL 3.2.2 4 Jun 2024 openssl version OpenSSL 3.2.2 4 Jun 2024 (Library: OpenSSL 3.2.2 4 Jun 2024) sudo yum install nginx Installing:nginx x86_64 2:1.20.1…...
https访问报错:net::ERR_CERT_DATE_INVALLD
目录 简介异常排查原因解决补充 简介 访问https资源出现报错 异常 排查 将地址拿到浏览器进行访问,可以很清晰的看到出现该问题的原因 原因 1、SSL证书已过期 2、服务器日期不准,不在证书有效期 解决 1、重新申请SSL证书,并配置 2、校正…...
cat用来查看文件内容、合并文件,或者将文件内容输出到终端
cat 是 Unix 和 Linux 系统中的一个命令,它的名称来源于 “concatenate”(连接),主要用来查看文件内容、合并文件,或者将文件内容输出到终端。 常用用法 查看文件内容 cat filename输出 filename 的内容到终端中。 例…...
基于ssm大学生自主学习网站的设计与实现
文未可获取一份本项目的java源码和数据库参考。 1、毕业论文(设计)的背景及意义: (1)研究背景 目前,因特网是世界上最大的计算机互联网络,它通过网络设备将世界各地互相独立的不同规模的局域…...
C++基础补充(01)C++11基于范围的for循环
文章目录 1. 基本语法1.1 decalaration默认获取值引用&自动类型推导(auto) 1.2 container数组STL容器初始化列表自定义类型返回容器的函数 2. 其他示例2.1 遍历数组2.2 遍历vector,并修改元素2.3 使用常量引用遍历,防止容器中…...
qt6 使用QPSQL
检查可用的数据库驱动: // iteator all database driverQStringList drivers QSqlDatabase::drivers();QStringList::iterator it;for (it drivers.begin(); it ! drivers.end(); it){qDebug() << *it;} qt6 自带pg数据库驱动: pro文件加个说明&…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
