Vue?項(xiàng)目中Echarts?5使用方法詳解
前言
Echarts 是一個(gè)純JavaScript的圖表庫(kù),兼容絕大部分的瀏覽器,底層依賴(lài)輕量級(jí)的canvas類(lèi)庫(kù)ZRender,提供直觀,生動(dòng),可交互,可高度個(gè)性化定制的數(shù)據(jù)可視化圖表。
創(chuàng)建項(xiàng)目
先使用vue-cli創(chuàng)建一個(gè)新的項(xiàng)目,配置按照自己的需要選擇,默認(rèn)的也可
vue create vue_echarts cd vue_echarts npm run serve
基本使用
安裝
首先安裝echarts
npm i echarts -S
使用方法
關(guān)于如何使用,我們可以閱讀官方文檔,寫(xiě)的挺詳細(xì)的,總的來(lái)說(shuō)需要把握以下兩點(diǎn):
- 在繪圖前我們需要為
ECharts準(zhǔn)備一個(gè)給定寬高的圖表容器(DOM元素) - 繪圖時(shí),首先通過(guò)
Echarts的init方法初始化一個(gè)echarts實(shí)例,然后通過(guò)setOption方法導(dǎo)入圖表配置來(lái)完成繪制
下面是以上兩點(diǎn)的具體代碼,只是理解用:
<template> <-- DOM 容器 --> <div style="width: 400px; height: 250px" ref="echarts"></div> </template> <script> // 全局引入 echarts import * as echarts from "echarts"; // 初始化實(shí)例 const myChart = echarts.init(this.$refs.echarts); // 繪制(提前配置好option) myChart.setOption(option); </script>
官方的示例中其實(shí)是通過(guò)id來(lái)獲取圖表容器

還是不建議這樣做,一個(gè)是因?yàn)槿绻?code>id重名了會(huì)導(dǎo)致頁(yè)面渲染出現(xiàn)問(wèn)題;再一個(gè)是頁(yè)面較復(fù)雜時(shí)會(huì)導(dǎo)致Echarts的圖表容器還未生成就對(duì)其進(jìn)行了初始化,所以還是使用ref來(lái)代替
柱狀圖
下面以常見(jiàn)的柱狀圖為例,來(lái)展示如何在我們的項(xiàng)目中使用echarts:
首先創(chuàng)建一個(gè)ref="echarts"的div元素作為圖表容器
<div style="width: 400px; height: 300px" ref="echarts"></div>
然后引入echarts
import * as echarts from "echarts";
在methods中定義一個(gè)繪制圖表的方法,并在mounted()鉤子中調(diào)用
methods: {
getEcharts() {
const myEcharts = echarts.init(this.$refs.echarts);
myEcharts.setOption(this.option);
},
},
mounted() {
this.getEcharts();
},
option為圖標(biāo)配置的相關(guān)數(shù)據(jù),定義在data()中
data() {
return {
option: {
title: {
text: "ECharts 柱狀圖",
},
legend: {
data: ["銷(xiāo)量"],
},
xAxis: {
data: ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"],
},
yAxis: {},
series: [
{
name: "銷(xiāo)量",
type: "bar",
data: [5, 20, 36, 10, 10, 20],
},
],
},
};
},
現(xiàn)在就可以在瀏覽器中看到繪制出的柱狀圖了:

現(xiàn)在回過(guò)頭來(lái)看看option中的配置項(xiàng)都表示什么含義
| 參數(shù)名 | 作用 |
|---|---|
| title | 圖表名稱(chēng) |
| legend | 配置圖例相關(guān),比如圖例的位置、內(nèi)容等 |
| xAxis/yAxis | 配置x/y軸相關(guān),比如坐標(biāo)軸數(shù)值、刻度等 |
| series | 配置圖表系列相關(guān),比如圖表類(lèi)型(series.type)、數(shù)據(jù)集(series.data)等 |
| color | 圖表的調(diào)色盤(pán),可以全局配置,也可以對(duì)某種圖表單獨(dú)配置 |
動(dòng)態(tài)排序柱狀圖
上面的基本柱狀圖好像有些基礎(chǔ)(low),下面來(lái)整個(gè)花里胡哨的。 ECharts 5 開(kāi)始內(nèi)置支持動(dòng)態(tài)排序柱狀圖,也即展示隨時(shí)間變化的數(shù)據(jù)排名變化的圖表。
圖表容器我們不做改變,首先準(zhǔn)備好一個(gè)隨機(jī)數(shù)組data
<script>
var data = [];
for (let i = 0; i < 5; ++i) {
data.push(Math.round(Math.random() * 200));
}
</script>
然后對(duì)option作如下配置
data() {
return {
option: {
title: {
text: "ECharts 動(dòng)態(tài)排序柱狀圖",
},
xAxis: {
max: "dataMax",
},
yAxis: {
type: "category",
data: ["A", "B", "C", "D", "E"],
inverse: true,
animationDuration: 300,
animationDurationUpdate: 300,
max: 2,
},
series: [
{
realtimeSort: true,
type: "bar",
data: data, // 數(shù)據(jù)為隨機(jī)數(shù)數(shù)組
label: {
show: true,
position: "right",
valueAnimation: true,
},
},
],
legend: {
show: true,
},
animationDuration: 3000,
animationDurationUpdate: 3000,
animationEasing: "linear",
animationEasingUpdate: "linear",
},
}
}
series中的realtimeSort設(shè)為true,表示開(kāi)啟該系列的動(dòng)態(tài)排序效果yAxis.inverse設(shè)為true,表示 Y 軸從下往上是從小到大的排列- 將
yAxis.max設(shè)為n,表示顯示前n+1名 - 將
series.label.valueAnimation設(shè)為true,就可以實(shí)時(shí)改變標(biāo)簽 animationDuration、animationDurationUpdate、animationEasing和animationEasingUpdate都是一些過(guò)渡動(dòng)畫(huà)相關(guān)的配置,想進(jìn)一步了解的可以閱讀官網(wǎng)的相關(guān)介紹
還沒(méi)完,我們還需要初始化實(shí)例并調(diào)用:
methods: {
getEcharts() {
let data = this.option.series[0].data;
for (var i = 0; i < data.length; ++i) {
if (Math.random() > 0.9) {
data[i] += Math.round(Math.random() * 2000);
} else {
data[i] += Math.round(Math.random() * 200);
}
}
const myEcharts = echarts.init(this.$refs.echarts);
myEcharts.setOption(this.option);
},
},
mounted() {
setInterval(() => {
this.getEcharts();
}, 3000);
},
這里每3s調(diào)用了一次setOption來(lái)改變圖表數(shù)據(jù),時(shí)間應(yīng)與每次更新動(dòng)畫(huà)時(shí)長(zhǎng),也即animationDurationUpdate的值一致。

以上就是Vue 項(xiàng)目中Echarts 5使用方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Vue 項(xiàng)目使用Echarts 5的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue中同時(shí)監(jiān)聽(tīng)多個(gè)參數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了vue中同時(shí)監(jiān)聽(tīng)多個(gè)參數(shù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
基于iview-admin實(shí)現(xiàn)動(dòng)態(tài)路由的示例代碼
這篇文章主要介紹了基于iview-admin實(shí)現(xiàn)動(dòng)態(tài)路由的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Vue3使用ref和reactive管理狀態(tài)的代碼示例
ref 和 reactive 是 Composition API 中用來(lái)聲明響應(yīng)式數(shù)據(jù)的兩個(gè)核心函數(shù),在 Vue 3 中,使用 setup 語(yǔ)法糖可以更簡(jiǎn)潔地使用這些功能,本文將探討如何使用 ref 和 reactive 來(lái)管理狀態(tài),并解釋它們之間的區(qū)別,需要的朋友可以參考下2024-09-09
vite+vue3項(xiàng)目集成ESLint與prettier的過(guò)程詳解
這篇文章主要介紹了vite+vue3項(xiàng)目中集成ESLint與prettier的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
Element-UI 解決el-table中圖片懸浮被遮擋問(wèn)題小結(jié)
在開(kāi)發(fā)中,發(fā)現(xiàn)element-ui在el-table中添加圖片懸浮顯示時(shí),會(huì)被單元格遮擋的問(wèn)題,對(duì)于此問(wèn)題解決其實(shí)也并不難,將懸浮圖片放在body節(jié)點(diǎn)下,通過(guò)定位顯示即可,感興趣的朋友跟隨小編一起看看吧2024-06-06
Vue2+Elementui?Dialog實(shí)現(xiàn)封裝自定義彈窗組件
在日常的管理系統(tǒng)界面中,我們寫(xiě)的最多的除了列表表格之外,就是各種彈窗組件,本文就來(lái)為大家詳細(xì)介紹一下Vue2如何結(jié)合Elementui?Dialog實(shí)現(xiàn)封裝自定義彈窗組件,希望對(duì)大家有所幫助2023-12-12
vue3使用Vite打包組件庫(kù)從0搭建過(guò)程詳解
這篇文章主要為大家介紹了vue3使用Vite打包組件庫(kù)從0搭建過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02

