vue 中使用echarts
前言:在vue2.0中使用百度echarts有三种解决方案。
一、原始方法直接使用
这样每次都要获取图表dom元素 然后通过setOption渲染数据,最后在mounted中初始化。很麻烦。
<template> <div> <div id="typeChart" style="width: 600px;height:400px;"></div> <div id="brandChart" style="width: 600px;height:400px;"></div> </div> </template> <script> import echarts from "echarts"; export default { methods: { typeChart() { // 基于准备好的dom,初始化echarts实例 let typeChart = echarts.init(document.getElementById("typeChart")); // 指定图表的配置项和数据 let option = { color: ["red"], title: { text: "类型统计" }, tooltip: {}, legend: { data: ["检测车辆"] }, xAxis: { data: ["中原区", "二七区", "金水区", "上街区", "中牟县", "经开区","高新区"] }, yAxis: {}, series: [ { name: "检测车辆", type: "bar", barWidth: 20, data: [50, 100, 200, 300, 400, 500, 600], itemStyle: { normal: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#67B6FF" }, //柱图渐变色 { offset: 0.5, color: "#44C0C1" }, //柱图渐变色 { offset: 1, color: "#06B5D7" } //柱图渐变色 ]) } } } ] }; // 使用刚指定的配置项和数据显示图表。 typeChart.setOption(option); }, brandChart() { // 基于准备好的dom,初始化echarts实例 let brandChart = echarts.init(document.getElementById("brandChart")); // 指定图表的配置项和数据 let option = { color: ["red"], title: { text: "品牌信息" }, tooltip: {}, legend: { data: ["检测车辆"] }, xAxis: { data: ["中原区", "二七区", "金水区", "上街区", "中牟县", "经开区","高新区"] }, yAxis: {}, series: [ { name: "检测车辆", type: "bar", barWidth: 20, data: [50, 140, 200, 300, 400, 500, 400], itemStyle: { normal: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#67B6FF" }, //柱图渐变色 { offset: 0.5, color: "#44C0C1" }, //柱图渐变色 { offset: 1, color: "#06B5D7" } //柱图渐变色 ]) } } } ] }; // 使用刚指定的配置项和数据显示图表。 brandChart.setOption(option); } }, mounted() { this.typeChart(); this.brandChart(); } }; </script>
二、使用vue-echarts
vue-echarts是ECharts 的 Vue.js 组件,基于 ECharts v4.1.0
+ 开发,依赖 Vue.js v2.2.6
+,意思就是可以直接把echarts实例当中vue中的组件来使用,不用每次都获取dom、挂在dom,轻松使用echarts的所用功能。。。
npm(安装)
$ npm install echarts vue-echart
main.js中引入
import ECharts from 'vue-echarts'
// 注册全局的组件
Vue.component('vChart', ECharts)
使用
<template> <div class="page"> <el-card> <!-- 柱状图+折线图 --> <vChart class="chart3" :options="barOptions" /> <!-- 饼状图 --> <el-row class="chart4" type="flex" justify="space-between"> <el-col :span="8" class="chart"> <vChart class="chart4_1" :options="piesOptions" /> </el-col> <el-col :span="8" class="chart"> <vChart class="chart4_1" :options="piesOptions" /> </el-col> <el-col :span="8" class="chart"> <vChart class="chart4_1" :options="piesOptions" /> </el-col> </el-row> </el-card> </div> </template> <script> export default { data() { return { barOptions: { color: ["#5094FF", "#64DAAC", "#FAC84A"], grid: { top: "15%", bottom: "20%", right: "5%", left: "5%" }, tooltip: {}, legend: { data: ["合格数", "超标数", "合格率", "超标率"], top: "0" }, xAxis: { type: "category", data: ["04-13", "04-14", "04-15", "04-16", "04-17", "04-18", "04-19"] }, yAxis: { // name: '合格率(%)', // nameLocation: 'middle', type: "value" // nameTextStyle: { // fontSize: '0.072917rem', // color: '#999999' // } }, series: [ { name: "合格数", type: "bar", barWidth: "15%", barGap: "5%", data: [20, 232, 441, 654, 770, 530, 410] }, { name: "超标数", type: "bar", barWidth: "15%", data: [120, 482, 791, 834, 590, 930, 710] }, { name: "合格率", type: "line", data: [420, 332, 291, 654, 590, 330, 810] }, { name: "超标率", type: "line", data: [120, 232, 391, 854, 590, 730, 410] } ] }, piesOptions: { color: ["#5094FF", "#64DAAC", "#FAC84A"], title: { text: "汽油柴油分布", top: "5%", left: "5%", textStyle: { fontSize: "0.072917rem", color: "#333333", fontStyle: "normal" } }, grid: { top: "15%", bottom: "15%", right: "15%", left: "15%" }, tooltip: { trigger: "item", formatter: "{a} <br/>{b} : {c} ({d}%)" }, series: [ { name: "气体值", type: "pie", radius: "80%", center: ["50%", "50%"], data: [ { value: 50, name: "NOx超标" }, { value: 30, name: "PM2.5超标" }, { value: 20, name: "超标污染物" } ], label: { position: "inside", formatter: "{b} \n {c}({d}%)" }, emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: "rgba(0, 0, 0, 0.5)" } } } ] } }; } }; </script>
三、使用v-charts
v-charts 是基于vue2二次封装的图表组件库,功能没有echarts多 但也够用了,官网很详细,这里用一个官网例子说明问题。
<template> <ve-histogram :data="chartData" :settings="chartSettings"></ve-histogram> </template> <script> export default { data () { this.chartSettings = { showLine: ['下单用户'] } return { chartData: { columns: ['日期', '访问用户', '下单用户', '下单率'], rows: [ { '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 }, { '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 }, { '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 }, { '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 }, { '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 }, { '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 } ] } } } } </script>
以上,可跟据需求选用,如果需求简单可直接用v-charts
本文来自博客园,作者:喆星高照,转载请注明原文链接:https://www.cnblogs.com/houxianzhou/p/13534668.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?