echarts运用

1. *.vue版本的echarts

首先在终端下载导入echarts的依赖

对于Vue 2项目

npm install echarts vue-echarts@5.0.1

对于Vue 3项目:

npm install echarts vue-echarts@6.0.0

然后随便创建一个空的.vue项目

然后根据自己的要求去Apache ECharts的网站找图表

Apache ECharts的网站

https://echarts.apache.org/zh/index.html

2.在<script>复制粘贴ECharts的代码

<script> import * as echarts from 'echarts';--引入ECharts的依赖 --后面就是复制粘贴ECharts的图表代码 var chartDom = document.getElementById('main'); var myChart = echarts.init(chartDom); var option; option = { 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' } ] }; option && myChart.setOption(option); </script>

3.接着在<template>里搞个容器

注意这里的id和上面的var chartDom = document.getElementById('main')中的id的main是一样的

<template> <div id="main" style="width: 900px; height: 420px;"></div> </template>

以上是静态的,接着来说动态的

差别就是ECharts的数据data挖空删掉和异步请求

<script> import * as echarts from 'echarts';--引入ECharts的依赖 --后面就是复制粘贴ECharts的图表代码 var chartDom = document.getElementById('main'); var myChart = echarts.init(chartDom); var option; option = { xAxis: { type: 'category', data: [] }, yAxis: { type: 'value' }, series: [ { data: [], type: 'bar' } ] }; option && myChart.setOption(option); fetch("自己的请求路径") .then(response => { if (!response.ok) throw new Error('请求失败'); return response.json(); }) .then(res => { res.forEach(item => { option.xAxis.data.push(根据自己要什么写); option.series[0].data.push(同上); //比如 // option.xAxis.data.push(item.name); // option.series[0].data.push(item.totalAmount); }); console.log(res); // 移到 forEach 外部(可选优化) myChart.setOption(option); // 数据填充后再渲染 }) .catch(error => { // 增加异常捕获(避免崩溃) console.error('数据请求失败:', error); }); </script>

最后你只要写出来大概然后给ai优化一下就可以了

2. *.hmtl版本的echarts

1.下载并引用echarts.js文件


下载地址:下载 -Apache ECharts

你可以点击Dist下载最新版的或者点击查看历史版本下载你想要的版本

在vscode中将echarts.min.js文件放在项目的根目录下的js文件夹下

2.创建index.html文件


2.1在html文件里面引用echarts.min.js创建DOM容器用来存放用ECharts生成的图

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>数据可视化</title> <link rel="stylesheet" href="./css/index.css"> </head> <body> <!-- 头部的盒子 --> <header> <h1>数据可视化-Echarts</h1> <div class="showTime"></div> <script> var t = null; // 初始化定时器,每秒更新显示时间 t = setTimeout(time, 1000);//開始运行 function time() { clearTimeout(t);//清除定时器 dt = new Date(); var y = dt.getFullYear(); var mt = dt.getMonth() + 1; var day = dt.getDate(); var h = dt.getHours();//获取时 var m = dt.getMinutes();//获取分 var s = dt.getSeconds();//获取秒 // 更新页面显示的时间 document.querySelector(".showTime").innerHTML = '当前时间:' + y + "年" + mt + "月" + day + "-" + h + "时" + m + "分" + s + "秒"; t = setTimeout(time, 1000); //设定定时器,循环运行 } </script> </header> <!-- 页面主体部分 --> <section class="mainbox"> <div class="column"> <!-- 柱形图展示就业行业数据 --> <div class="panel bar"> <h2>柱形图-就业行业</h2> <div class="chart">图表</div> <div class="panel-footer"></div> </div> <!-- 折线图展示人员变化趋势 --> <div class="panel line"> <h2>折线图-人员变化 <a href="javascript:;">2020</a><a href="javascript:;">2021</a></h2> <div class="chart">图表</div> <div class="panel-footer"></div> </div> <!-- 饼形图展示年龄分布数据 --> <div class="panel pie"> <h2>饼形图-年龄分布</h2> <div class="chart">图表</div> <div class="panel-footer"></div> </div> </div> <div class="column"> <!-- 该模块用于展示前端需求与市场供应人数对比 --> <div class="no"> <div class="no-hd"> <ul> <li>123456</li> <li>101010</li> </ul> </div> <div class="no-bd"> <ul> <li>前端需求人数</li> <li>市场供应人数</li> </ul> </div> </div> <!-- 地图模块,可能用于展示地域相关数据 --> <div class="map"> <div class="map1"></div> <div class="map2"></div> <div class="map3"></div> <div class="chart"></div> </div> </div> <div class="column"> <!-- 柱形图展示就业形势数据 --> <div class="panel bar2"> <h2>柱形图-就业形势</h2> <div class="chart">图表</div> <div class="panel-footer"></div> </div> <!-- 折线图展示播放量数据 --> <div class="panel line2"> <h2>折线图-播放量</h2> <div class="chart">图表</div> <div class="panel-footer"></div> </div> <!-- 饼形图展示地区分布数据 --> <div class="panel pie2"> <h2>饼形图-地区分布</h2> <div class="chart">图表</div> <div class="panel-footer"></div> </div> </div> </section> <!-- 引入外部JavaScript库和自定义脚本 --> <script src="./js/flexible.js"></script> <script src="./js/echarts.min.js"></script> <script src="./js/jquery.js"></script> <script src="./js/china.js"></script> <script src="./js/index.js"></script> </body> </html>

2.2初始化echarts实例

在项目的根目录下面的js目录里面创建一个index.js文件来写用ECharts生成图表的代码

初始化echarts实例示例代码

//实例化对象 var myChart = echarts.init(document.querySelector('.bar .chart'));

2.3指定配置项以及数据

//指定配置项和数据 var option = { color: ['#2f89cf'], tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, //修改图标的大小 grid: { left: "0%", top: "10px", right: "0%", bottom: "4%", containLabel: true }, xAxis: [ { type: 'category', data: ["旅游行业", "教育培训", "游戏行业", "医疗行业", "电商行业", "社交行业", "金融行业"], axisTick: { alignWithLabel: true }, //修改刻度标签 相关样式 axisLabel: { color: "rgba(255,255,255,.6)", fontSize: "8", // interval: 0 }, //不显示x坐标轴的样式 axisLine: { show: false } } ], yAxis: [ { type: 'value', //修改刻度标签 相关样式 axisLabel: { color: "rgba(255,255,255,.6)", fontSize: "12" }, //不显示x坐标轴的样式 axisLine: { lineStyle: { color: "rgba(255,255,255,.1)", width: 2 } }, //y轴分割线样式 splitLine: { lineStyle: { color: "rgba(255,255,255,.1)" } } } ], series: [ { name: 'Direct', type: 'bar', barWidth: '35%', data: [200, 300, 300, 900, 1500, 1200, 600], itemStyle: { //修改柱子圆角 barBorderRadius: 5 } } ] };

2.4把配置项给实例对象

myChart.setOption(option);

4.柱状图

//柱状图1 // 立即执行函数,用于封装柱状图的配置和初始化 (function () { // 1. 实例化 ECharts 对象并绑定到指定的 DOM 元素 var myChart = echarts.init(document.querySelector('.bar .chart')); // 2. 定义柱状图的配置项 var option = { // 定义图表的主题颜色 color: ['#2f89cf'], // 提示框组件配置,用于交互时的信息提示 tooltip: { trigger: 'axis', // 触发类型为坐标轴触发 axisPointer: { // 指示器配置 type: 'shadow' // 类型为阴影指示器 } }, // 网格组件配置,控制图表的网格位置和大小 grid: { left: "0%", // 左边距 top: "10px", // 顶部距 right: "0%", // 右边距 bottom: "4%", // 底部距 containLabel: true // 网格是否包含坐标轴的标签 }, // X 轴配置 xAxis: [ { type: 'category', // 类型为类目轴 data: ["旅游行业", "教育培训", "游戏行业", "医疗行业", "电商行业", "社交行业", "金融行业"], // 类目数据 axisTick: { // 坐标轴刻度的配置 alignWithLabel: true // 刻度线与标签对齐 }, // X 轴标签的样式配置 axisLabel: { color: "rgba(255,255,255,.6)", // 标签颜色 fontSize: "8", // 标签字体大小 }, // X 轴轴线的样式配置 axisLine: { show: false // 不显示轴线 } } ], // Y 轴配置 yAxis: [ { type: 'value', // 类型为数值轴 // Y 轴标签的样式配置 axisLabel: { color: "rgba(255,255,255,.6)", // 标签颜色 fontSize: "12" // 标签字体大小 }, // Y 轴轴线的样式配置 axisLine: { lineStyle: { // 轴线样式配置 color: "rgba(255,255,255,.1)", // 轴线颜色 width: 2 // 轴线宽度 } }, // Y 轴分割线的样式配置 splitLine: { lineStyle: { // 分割线样式配置 color: "rgba(255,255,255,.1)" // 分割线颜色 } } } ], // 系列配置 series: [ { name: 'Direct', // 系列名称 type: 'bar', // 图表类型为柱状图 barWidth: '35%', // 柱子宽度 data: [200, 300, 300, 900, 1500, 1200, 600], // 数据数组 // 柱子样式配置 itemStyle: { barBorderRadius: 5 // 柱子圆角大小 } } ] ]; // 3. 使用刚指定的配置项和数据显示图表 myChart.setOption(option); // 4. 监听浏览器窗口大小变化事件,实现图表的自适应大小 window.addEventListener("resize", function () { myChart.resize(); }); })(); //柱状图2 // 立即执行函数,用于封装第二个柱状图的配置和初始化 (function () { // 声明颜色数组,用于定义柱状图的颜色 var myColor = ["#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"]; // 实例化 ECharts 对象并绑定到指定的 DOM 元素 var myChart = echarts.init(document.querySelector(".bar2 .chart")); // 定义柱状图的配置项 var option = { // 网格组件配置 grid: { top: "10%", // 顶部距 left: "22%", // 左边距 bottom: "10%", // 底部距 containLabel: true // 网格是否包含坐标轴的标签 }, // X 轴配置,不显示 X 轴 xAxis: { show: false // 不显示 X 轴 }, // Y 轴配置,包含两个 Y 轴,一个用于显示类目,一个用于显示数值 yAxis: [ { axisLine: { show: false // 不显示 Y 轴轴线 }, axisTick: { show: false // 不显示 Y 轴刻度 }, axisLabel: { color: "#fff" // Y 轴标签颜色 }, type: 'category', // 类型为类目轴 inverse: true, // 反转坐标轴 data: ["HTML5", "CSS3", "javascript", "VUE", "NODE"] // 类目数据 }, { show: true, // 显示 Y 轴 data: [702, 350, 610, 793, 664], // 数值数据 inverse: true, // 反转坐标轴 axisLabel: { // Y 轴标签的样式配置 textStyle: { fontSize: 12, // 标签字体大小 color: "#fff" // 标签颜色 } } } ], // 系列配置,包含两个系列,一个为柱状图,一个为边框 series: [ { name: '条', // 系列名称 type: 'bar', // 图表类型为柱状图 data: [70, 34, 60, 78, 69], // 数据数组 yAxisIndex: 0, // 使用第一个 Y 轴 barCategoryGap: 50, // 柱子类目间隔 barWidth: 10, // 柱子宽度 itemStyle: { // 柱子样式配置 normal: { barBorderRadius: 20, // 柱子圆角大小 color: function (params) { // 柱子颜色动态绑定 return myColor[params.dataIndex]; } } }, label: { // 图形上的文本标签 normal: { show: true, // 显示标签 position: "inside", // 标签显示在柱子内部 formatter: "{c}%" // 标签显示格式 } } }, { name: "框", // 系列名称 type: "bar", // 图表类型为柱状图 barCategoryGap: 50, // 柱子类目间隔 barWidth: 15, // 柱子宽度 itemStyle: { // 边框样式配置 color: "none", // 柱子颜色设置为透明 borderColor: "#00c1de", // 边框颜色 borderWidth: 3, // 边框宽度 barBorderRadius: 15 // 边框圆角大小 }, yAxisIndex: 1, // 使用第二个 Y 轴 data: [100, 100, 100, 100, 100] // 数据数组,这里为固定值 } ] }; // 使用刚指定的配置项和数据显示图表 myChart.setOption(option); // 监听浏览器窗口大小变化事件,实现图表的自适应大小 window.addEventListener("resize", function () { myChart.resize(); }); })();

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

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

相关文章

智能扫描仪性能测试:不同光照条件下的表现对比

智能扫描仪性能测试&#xff1a;不同光照条件下的表现对比 1. 引言 1.1 选型背景 在数字化办公日益普及的今天&#xff0c;将纸质文档快速、清晰地转化为电子文件已成为日常刚需。尽管市面上已有大量商业扫描应用&#xff08;如“全能扫描王”&#xff09;&#xff0c;但其依…

游戏效率革命:LeagueAkari助手的7大突破性功能

游戏效率革命&#xff1a;LeagueAkari助手的7大突破性功能 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 想要彻底改变你的…

MinerU PDF提取性能评测:GPU vs CPU模式速度对比分析

MinerU PDF提取性能评测&#xff1a;GPU vs CPU模式速度对比分析 1. 引言 1.1 技术背景与选型需求 在现代文档处理场景中&#xff0c;PDF作为最广泛使用的格式之一&#xff0c;承载了大量科研论文、技术报告和商业文档。然而&#xff0c;传统PDF解析工具&#xff08;如PyPDF…

League Akari智能游戏助手:英雄联盟玩家终极完整教程

League Akari智能游戏助手&#xff1a;英雄联盟玩家终极完整教程 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 还在为繁琐…

Blender3mf插件:从3D建模到实际打印的无缝衔接完整指南

Blender3mf插件&#xff1a;从3D建模到实际打印的无缝衔接完整指南 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 作为一名3D打印爱好者&#xff0c;您是否经常遇到这样…

DLSS Swapper终极指南:轻松管理游戏DLSS版本的完整解决方案

DLSS Swapper终极指南&#xff1a;轻松管理游戏DLSS版本的完整解决方案 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 想要在游戏中获得更流畅的画面表现和更优化的运行效率吗&#xff1f;DLSS Swapper正是您需要的游…

DownKyi专业操作指南:B站视频高效获取与处理全解析

DownKyi专业操作指南&#xff1a;B站视频高效获取与处理全解析 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff…

从零构建中文语义匹配系统|集成GTE向量模型的WebUI计算器实战

从零构建中文语义匹配系统&#xff5c;集成GTE向量模型的WebUI计算器实战 1. 项目背景与核心价值 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;语义相似度计算是理解文本间内在关系的关键技术。无论是智能客服中的意图识别、推荐系统中的内容去重&#xff0c;…

RePKG工具使用指南:Wallpaper Engine资源解包与纹理转换

RePKG工具使用指南&#xff1a;Wallpaper Engine资源解包与纹理转换 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg RePKG是一款专为Wallpaper Engine设计的开源资源处理工具&#…

BGE-M3企业POC指南:5步低成本验证技术可行性

BGE-M3企业POC指南&#xff1a;5步低成本验证技术可行性 你是不是也遇到过这样的情况&#xff1f;作为售前工程师&#xff0c;客户想现场看看你们推荐的AI检索方案到底有多强&#xff0c;尤其是对多语言文档、长篇合同或技术手册这类复杂内容的处理能力。可公司不让带显卡设备…

NewBie-image-Exp0.1环境部署教程:PyTorch 2.4+CUDA 12.1快速配置指南

NewBie-image-Exp0.1环境部署教程&#xff1a;PyTorch 2.4CUDA 12.1快速配置指南 1. 引言 随着生成式AI在动漫图像创作领域的快速发展&#xff0c;构建一个稳定、高效且开箱即用的开发环境成为研究者和创作者的核心需求。NewBie-image-Exp0.1 是一款专为高质量动漫图像生成设…

惊艳!用Qwen3-VL打造的智能相册描述案例分享

惊艳&#xff01;用Qwen3-VL打造的智能相册描述案例分享 1. 引言&#xff1a;让老照片“开口说话” 在数字生活日益丰富的今天&#xff0c;我们的手机和电脑中积累了成千上万张照片。从家庭聚会到旅行风景&#xff0c;每一张图片都承载着独特的记忆。然而&#xff0c;随着时间…

STM32中HardFault_Handler定位实战案例分析

STM32中HardFault定位实战&#xff1a;从堆栈回溯到故障根源的完整路径在嵌入式开发的世界里&#xff0c;HardFault不是新闻&#xff0c;而是一种“宿命”——每个STM32开发者早晚都会与它狭路相逢。它不像警告那样温柔提醒&#xff0c;而是直接让你的程序戛然而止&#xff0c;…

Llama3-8B情感分析实战:社交媒体监控部署教程

Llama3-8B情感分析实战&#xff1a;社交媒体监控部署教程 1. 引言 随着社交媒体平台的迅猛发展&#xff0c;用户生成内容&#xff08;UGC&#xff09;呈指数级增长。企业、品牌和研究机构亟需从海量文本中提取有价值的情绪倾向信息&#xff0c;以支持舆情监控、客户反馈分析和…

DownKyi视频下载管理器:从入门到精通的终极指南

DownKyi视频下载管理器&#xff1a;从入门到精通的终极指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09;…

英雄联盟辅助神器LeagueAkari:新手必学的5大核心技巧

英雄联盟辅助神器LeagueAkari&#xff1a;新手必学的5大核心技巧 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari LeagueAka…

百度网盘下载太慢?3步教你实现10倍速度提升

百度网盘下载太慢&#xff1f;3步教你实现10倍速度提升 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 如果你正在为百度网盘下载速度慢而烦恼&#xff0c;这篇文章将为你提供…

HsMod完全指南:快速解锁炉石传说60+隐藏功能

HsMod完全指南&#xff1a;快速解锁炉石传说60隐藏功能 【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 还在为炉石传说冗长的动画和繁琐操作烦恼吗&#xff1f;这款基于BepInEx框架开发的免费炉石…

BERT-base-chinese填空服务开发

BERT-base-chinese填空服务开发 1. 章节名称 1.1 子主题名称 列表项一列表项二 获取更多AI镜像 想探索更多AI镜像和应用场景&#xff1f;访问 CSDN星图镜像广场&#xff0c;提供丰富的预置镜像&#xff0c;覆盖大模型推理、图像生成、视频生成、模型微调等多个领域&#xff…

终极指南:10秒破解百度网盘提取码难题,95%成功率让你告别资源焦虑![特殊字符]

终极指南&#xff1a;10秒破解百度网盘提取码难题&#xff0c;95%成功率让你告别资源焦虑&#xff01;&#x1f680; 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘分享链接的提取码而烦恼吗&#xff1f;那种&…