Vue?項目中Echarts?5使用方法詳解
前言
Echarts
是一個純JavaScript
的圖表庫,兼容絕大部分的瀏覽器,底層依賴輕量級的canvas
類庫ZRender
,提供直觀,生動,可交互,可高度個性化定制的數(shù)據(jù)可視化圖表。
創(chuàng)建項目
先使用vue-cli
創(chuàng)建一個新的項目,配置按照自己的需要選擇,默認的也可
vue create vue_echarts cd vue_echarts npm run serve
基本使用
安裝
首先安裝echarts
npm i echarts -S
使用方法
關于如何使用,我們可以閱讀官方文檔,寫的挺詳細的,總的來說需要把握以下兩點:
- 在繪圖前我們需要為
ECharts
準備一個給定寬高的圖表容器(DOM
元素) - 繪圖時,首先通過
Echarts
的init
方法初始化一個echarts
實例,然后通過setOption
方法導入圖表配置來完成繪制
下面是以上兩點的具體代碼,只是理解用:
<template> <-- DOM 容器 --> <div style="width: 400px; height: 250px" ref="echarts"></div> </template> <script> // 全局引入 echarts import * as echarts from "echarts"; // 初始化實例 const myChart = echarts.init(this.$refs.echarts); // 繪制(提前配置好option) myChart.setOption(option); </script>
官方的示例中其實是通過id
來獲取圖表容器
還是不建議這樣做,一個是因為如果id
重名了會導致頁面渲染出現(xiàn)問題;再一個是頁面較復雜時會導致Echarts
的圖表容器還未生成就對其進行了初始化,所以還是使用ref
來代替
柱狀圖
下面以常見的柱狀圖為例,來展示如何在我們的項目中使用echarts
:
首先創(chuàng)建一個ref="echarts"
的div
元素作為圖表容器
<div style="width: 400px; height: 300px" ref="echarts"></div>
然后引入echarts
import * as echarts from "echarts";
在methods
中定義一個繪制圖表的方法,并在mounted()
鉤子中調(diào)用
methods: { getEcharts() { const myEcharts = echarts.init(this.$refs.echarts); myEcharts.setOption(this.option); }, }, mounted() { this.getEcharts(); },
option
為圖標配置的相關數(shù)據(jù),定義在data()
中
data() { return { option: { title: { text: "ECharts 柱狀圖", }, legend: { data: ["銷量"], }, xAxis: { data: ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"], }, yAxis: {}, series: [ { name: "銷量", type: "bar", data: [5, 20, 36, 10, 10, 20], }, ], }, }; },
現(xiàn)在就可以在瀏覽器中看到繪制出的柱狀圖了:
現(xiàn)在回過頭來看看option
中的配置項都表示什么含義
參數(shù)名 | 作用 |
---|---|
title | 圖表名稱 |
legend | 配置圖例相關,比如圖例的位置、內(nèi)容等 |
xAxis/yAxis | 配置x/y軸相關,比如坐標軸數(shù)值、刻度等 |
series | 配置圖表系列相關,比如圖表類型(series.type)、數(shù)據(jù)集(series.data)等 |
color | 圖表的調(diào)色盤,可以全局配置,也可以對某種圖表單獨配置 |
動態(tài)排序柱狀圖
上面的基本柱狀圖好像有些基礎(low),下面來整個花里胡哨的。 ECharts 5
開始內(nèi)置支持動態(tài)排序柱狀圖,也即展示隨時間變化的數(shù)據(jù)排名變化的圖表。
圖表容器我們不做改變,首先準備好一個隨機數(shù)組data
<script> var data = []; for (let i = 0; i < 5; ++i) { data.push(Math.round(Math.random() * 200)); } </script>
然后對option
作如下配置
data() { return { option: { title: { text: "ECharts 動態(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ù)為隨機數(shù)數(shù)組 label: { show: true, position: "right", valueAnimation: true, }, }, ], legend: { show: true, }, animationDuration: 3000, animationDurationUpdate: 3000, animationEasing: "linear", animationEasingUpdate: "linear", }, } }
series
中的realtimeSort
設為true
,表示開啟該系列的動態(tài)排序效果yAxis.inverse
設為true
,表示 Y 軸從下往上是從小到大的排列- 將
yAxis.max
設為n
,表示顯示前n+1
名 - 將
series.label.valueAnimation
設為true
,就可以實時改變標簽 animationDuration
、animationDurationUpdate
、animationEasing
和animationEasingUpdate
都是一些過渡動畫相關的配置,想進一步了解的可以閱讀官網(wǎng)的相關介紹
還沒完,我們還需要初始化實例并調(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
來改變圖表數(shù)據(jù),時間應與每次更新動畫時長,也即animationDurationUpdate
的值一致。
以上就是Vue 項目中Echarts 5使用方法詳解的詳細內(nèi)容,更多關于Vue 項目使用Echarts 5的資料請關注腳本之家其它相關文章!
相關文章
vue中同時監(jiān)聽多個參數(shù)的實現(xiàn)
這篇文章主要介紹了vue中同時監(jiān)聽多個參數(shù)的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04基于iview-admin實現(xiàn)動態(tài)路由的示例代碼
這篇文章主要介紹了基于iview-admin實現(xiàn)動態(tài)路由的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10Vue3使用ref和reactive管理狀態(tài)的代碼示例
ref 和 reactive 是 Composition API 中用來聲明響應式數(shù)據(jù)的兩個核心函數(shù),在 Vue 3 中,使用 setup 語法糖可以更簡潔地使用這些功能,本文將探討如何使用 ref 和 reactive 來管理狀態(tài),并解釋它們之間的區(qū)別,需要的朋友可以參考下2024-09-09vite+vue3項目集成ESLint與prettier的過程詳解
這篇文章主要介紹了vite+vue3項目中集成ESLint與prettier的相關知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09Element-UI 解決el-table中圖片懸浮被遮擋問題小結(jié)
在開發(fā)中,發(fā)現(xiàn)element-ui在el-table中添加圖片懸浮顯示時,會被單元格遮擋的問題,對于此問題解決其實也并不難,將懸浮圖片放在body節(jié)點下,通過定位顯示即可,感興趣的朋友跟隨小編一起看看吧2024-06-06Vue2+Elementui?Dialog實現(xiàn)封裝自定義彈窗組件
在日常的管理系統(tǒng)界面中,我們寫的最多的除了列表表格之外,就是各種彈窗組件,本文就來為大家詳細介紹一下Vue2如何結(jié)合Elementui?Dialog實現(xiàn)封裝自定義彈窗組件,希望對大家有所幫助2023-12-12