Vue前端,使用echarts图表库

ops/2024/10/25 13:18:05/

文章目录

    • 1. ECharts官网地址
    • 2. echarts安装方式
    • 3. 使用柱状图,饼图,折线图
    • 4. 运行效果图

1. ECharts官网地址

https://echarts.apache.org/handbook/zh/get-started/

echarts_9">2. echarts安装方式

npm install echarts

温馨提示:使用npm命令的前提,是必须安装Nodejs

3. 使用柱状图,饼图,折线图

打开官网选择【示例】,然后选择自己所需要的图标,查看demo

  1. 编写布局样式文件,简单的准备3个div盒子
<el-row :gutter="20" style="margin-top: 60px;"><el-col :span="8"><div class="grid-content4"><div ref="barChart" style="height: 100%;width: 100%;"></div></div></el-col><el-col :span="8"><div class="grid-content5"><div ref="pieChart" style="height: 100%;width: 100%;"></div></div></el-col><el-col :span="8"><div class="grid-content6"><div ref="lineChart" style="height: 100%;width: 100%;"></div></div></el-col></el-row>
  1. 调用接口获取图表数据(这里忽略接口调用,由后端提供)

queryMedicalRecordByDiseaseData() {queryMedicalRecordByDisease().then(res => {//获取接口数据后,初始化图表控件,并设置数据this.initBarChart(res.data.list);this.initPieChart(res.data.list);this.initLineChart(res.data.list)});},
  1. 设置数据

//柱状图
initBarChart(data) {// 基于准备好的dom,初始化echarts实例const chartDom = this.$refs.barChart;const myChart = echarts.init(chartDom);// 提取 x 轴数据(疾病名称)和 y 轴数据(人数)const xAxisData = data.map(item => item.disease_name);const seriesData = data.map(item => item.patient_count);const option = {title: {text: '高发疾病',subtext: '数据统计',left: 'center'},tooltip: {trigger: 'axis',axisPointer: {type: 'shadow'}},grid: {left: '3%',right: '4%',bottom: '3%',containLabel: true},xAxis: [{type: 'category',data: xAxisData,axisTick: {alignWithLabel: true}}],yAxis: [{type: 'value'}],series: [{name: '患病人数',type: 'bar',barWidth: '60%',data: seriesData}]};//这句不能少myChart.setOption(option);},//饼图initPieChart(data) {// 基于准备好的dom,初始化echarts实例const chartDom = this.$refs.pieChart;const myChart = echarts.init(chartDom);// 提取 x 轴数据(疾病名称)和 y 轴数据(人数)const xAxisData = data.map(item => item.disease_name);const seriesData = this.transformToChartData(data);const option = {title: {text: '高发疾病',subtext: '数据统计',left: 'center'},tooltip: {trigger: 'item'},legend: {orient: 'vertical',left: 'left'},series: [{name: '患病人数',type: 'pie',radius: '50%',data: seriesData,emphasis: {itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}}}]};//这句不能少myChart.setOption(option);},//折线图initLineChart(data) {// 基于准备好的dom,初始化echarts实例const chartDom = this.$refs.lineChart;const myChart = echarts.init(chartDom);// 提取 x 轴数据(疾病名称)和 y 轴数据(人数)const xAxisData = data.map(item => item.disease_name);const seriesData = data.map(item => item.patient_count);const option = {title: {text: '高发疾病',subtext: '数据统计',left: 'center'},xAxis: {type: 'category',boundaryGap: false,data: xAxisData},yAxis: {type: 'value'},series: [{data: seriesData,type: 'line',areaStyle: {}}]};//这句不能少myChart.setOption(option);},//将数据转换为图表数据格式transformToChartData(data) {return data.map(item => ({value: item.patient_count,name: item.disease_name // 使用 disease_name 或 diagnosis_result 作为名称}));},
  1. 最后别忘了调用setOption
myChart.setOption(option);

温馨提示,由于接口返回的字段,跟图表所需要的字段肯定不是一致的,所以我们使用list.map方法来转换一下

4. 运行效果图

在这里插入图片描述


http://www.ppmy.cn/ops/128341.html

相关文章

【Ubuntu20.04 Visual Studio Code安装】【VSCODE】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、打开VSCOE官网二、下载VSODE的Ubuntu版本三、安装VSCODE软件包四、导入工作空间(添加工作空间目录)五、安装插件&#xff1a;1.安装简体中文包2.安装ros插件…

力扣_泰波那契数

本题目本质和爬楼梯是一样的&#xff0c;主要运用的是递归来解题。 class Solution:my_dict {}def tribonacci(self, n: int) -> int:if self.my_dict.get(n) is not None: # 先判断有没有计算过这个值return self.my_dict.get(n)tempResult 0if n > 3:tempResult s…

ASP.NET MVC-font awesome-localhost可用IIS不可用

环境&#xff1a; win10, .NET 6.0&#xff0c;IIS 问题描述 本地IIS正常显示&#xff0c;但放到远程服务器上&#xff0c;每个icon都显示?。同时浏览器的控制台报错&#xff1a; fontawesome-webfont.woff2:1 Failed to load resource: the server responded with a statu…

LeetCode题(二分查找,C++实现)

LeetCode题&#xff08;二分查找&#xff0c;C实现&#xff09; 记录一下做题过程&#xff0c;肯定会有比我的更好的实现办法&#xff0c;这里只是一个参考&#xff0c;能帮到大家就再好不过了。 目录 LeetCode题&#xff08;二分查找&#xff0c;C实现&#xff09; 一、搜…

鸿蒙网络编程系列19-获取网络连接信息并选择一种绑定到应用示例

1. 网络类型简介 移动设备一般都具备移动网络和无线WIFI的连接能力&#xff0c;有些还可以接入有线以太网&#xff0c;这些网络可以根据需要随时切换。鸿蒙APP可以自动适应上述的网络&#xff0c;一般来说&#xff0c;会优先使用WIFI或者有线以太网&#xff0c;移动网络因为要…

Redis学习文档

Redis 事务 什么是 Redis 事务&#xff1f; 你可以将 Redis 中的事务理解为&#xff1a;Redis 事务提供了一种将多个命令请求打包的功能。然后&#xff0c;再按顺序执行打包的所有命令&#xff0c;并且不会被中途打断。 Redis 事务实际开发中使用的非常少&#xff0c;功能比…

恋爱脑讲编程:Rust 的所有权概念

想象一下&#xff0c;你&#xff08;变量 &#xff09;深深爱上了一个女孩&#xff08;字符串&#xff09;。 这个女孩就是你的所有物&#xff1a;你对她有独占的感情&#xff0c;其他人都不能拥有她。你的爱意就是变量的所有权&#xff1a;只有你才能完全掌控这份感情&#x…

数学建模与优化算法:从基础理论到实际应用

数学建模和优化算法&#xff0c;它们不仅帮助我们理解和描述复杂系统的行为&#xff0c;还能找到系统性能最优化的解决方案。本文将从基础的数学理论出发&#xff0c;逐步深入到各种优化算法&#xff0c;并探讨它们在实际问题中的应用。 思维导图文件可获取&#xff1a;https:…