Vue前端,使用echarts图表库

news/2024/10/22 22:35:10/

文章目录

    • 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. 编写布局样式文件
<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/news/1541171.html

相关文章

移动端面试问题笔记(一)

1. 1pxborder的问题 原因: 设备像素比不同 从移动端的角度说个具体的场景&#xff0c;以iphone6为例。 iphone6的屏幕宽度为375px&#xff0c;设计师做的视觉稿一般是750px&#xff0c;也就是2x&#xff0c;这个时候设计师在视觉稿上画了1px的边框&#xff0c;于是你就写了“bo…

si551x时钟芯片linux下调试笔记

目录 前言一、依赖文档、工具二、让芯片工作的流程三、以上步骤的SOC下代码实现 前言 本文总结调试SKYWORKS芯片厂商Si5512时钟芯片时的笔记&#xff0c;基于linux5.10.xxx内核&#xff0c;在arm64架构的SOC上验证&#xff1b; 一、依赖文档、工具 文档名说明下载链接Si5518…

第 4 章:Vue 中的 ajax

1. 解决开发环境 Ajax 跨域问题 vue脚手架配置代理 原理图&#xff1a; 1.1 方法一 在vue.config.js中添加如下配置&#xff1a; devServer:{proxy:"http://localhost:5000" // 这个5000 是请求目标的端口号 }说明&#xff1a; 优点&#xff1a;配置简单&…

已发布金融国家标准目录(截止2024年3月)

已发布金融国家标准目录2024年3月序号标准编号标准名称

pikachu靶场CSRF-get测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、抓包使用burp生成csrf脚本 四、源代码分析 五、结论 一、测试环境 1、系统环境 渗透机&#xff1a;本机(127.0.0.1) 靶 机&#xff1a;本机(127.0.0.1) 2、使用工具/软件 Burp sui…

Unity开发Hololens项目

Unity打包Hololens设备 目录Visual Studio2019 / Visual Studio2022 远端部署设置Visual Studio2019 / Visual Studio2022 USB部署设置Hololens设备如何查找自身IPHololens设备门户Unity工程内的打包设置 目录 记录下自己做MR相关&#xff1a;Unity和HoloLens设备的历程。 Vi…

请求的crossDomain和withCredentials字段

场景 axios请求头种不携带withCredentials字段会出现跨域错误。 分析 1. crossDomain: true crossDomain 是一个配置选项&#xff0c;用来表示即将发出的请求是否是一个跨域请求。 当 crossDomain 设置为 true 时&#xff0c;axios 会使用 XMLHttpRequest 的 withCredentials …

【v5.3.0】修复订单批量发货提示 isPicUpload is not defined

使用订单批量发货的时候&#xff0c;没有反应&#xff0c;控制台提示 ReferenceError: isPicUpload is not defined 修改文件src/pages/order/orderList/components/tableList.vue 把isPicUpload改成isFileUpload&#xff0c;然后重新打包admin后台上传即可