Vue3+Echarts常用屬性之折線圖詳解
一、Vue3中使用echarts
要在Vue 3中使用echarts圖表庫,你需要按照以下步驟進(jìn)行操作:
1、安裝echarts庫
在終端中運(yùn)行以下命令:
npm install echarts
2、在需要使用echarts的組件中
引入echarts庫:
import * as echarts from 'echarts';
3、創(chuàng)建一個容器元素用于展示echarts圖表
可以在模板中添加一個<div>元素,并為其設(shè)置一個唯一的id屬性:
<template> <div id="chartContainer"></div> </template>
4、在組件的mounted生命周期鉤子中
初始化echarts圖表并綁定到容器元素:
import { ref, onMounted } from 'vue';
export default {
name: 'ChartComponent',
setup() {
const chartContainer = ref(null); // 用于引用容器元素
onMounted(() => {
const chart = echarts.init(chartContainer.value); // 初始化echarts圖表
// 在這里配置和更新echarts圖表的數(shù)據(jù)、樣式等
});
return {
chartContainer,
};
},
};5、在mounted生命周期鉤子中
你可以使用chart對象來配置和更新echarts圖表的數(shù)據(jù)、樣式等。
例如,你可以使用setOption方法來設(shè)置圖表的配置項:
chart.setOption({
// 配置項
});6、在組件銷毀時
記得銷毀echarts圖表對象,以釋放資源:
import { onUnmounted } from 'vue';
export default {
name: 'ChartComponent',
setup() {
// ...
onUnmounted(() => {
chart.dispose(); // 銷毀echarts圖表對象
});
// ...
},
};通過以上步驟,你就可以在Vue 3中使用echarts庫來創(chuàng)建和展示圖表了。
二、一個折線圖的簡單例子
以下是一個完整的Vue 3中使用echarts的例子:
<template>
<div class="chart-container" ref="chartRef"></div>
</template>
<script setup>
import { ref, onMounted, onUnmounted } from 'vue'
import * as echarts from 'echarts'
const chartRef = ref(null)
let chartInstance = null
onMounted(() => {
chartInstance = echarts.init(chartRef.value)
// 模擬數(shù)據(jù)
const data = [
{ name: 'A', value: 100 },
{ name: 'B', value: 200 },
{ name: 'C', value: 150 },
{ name: 'D', value: 300 },
{ name: 'E', value: 88 },
{ name: 'F', value: 98 },
{ name: 'G', value: 123 },
{ name: 'H', value: 219 }
]
// 配置項
const options = {
xAxis: {
type: 'category',
data: data.map((item) => item.name)
},
yAxis: {
type: 'value'
},
series: [
{
data: data.map((item) => item.value),
type: 'line'
}
]
}
// 設(shè)置圖表配置項
chartInstance.setOption(options)
})
onUnmounted(() => {
if (chartInstance) {
chartInstance.dispose()
chartInstance = null
}
})
</script>
<style scoped>
.chart-container {
width: 400px;
height: 300px;
}
</style>
在上面的例子中,我們創(chuàng)建了一個ChartComponent組件,用于展示一個簡單的折線圖。
效果:

三、常用屬性
是否顯示X軸刻度
要去掉X軸的刻度,你可以通過配置axisTick的show屬性為false來實現(xiàn)。
xAxis: {
type: 'category',
data: data.map((item) => item.name),
axisTick: {
show: false, // 不顯示刻度
},
// axisLabel: {
// show: false // 不顯示刻度標(biāo)簽,一般都是要顯示的
// }
},在上面的代碼中,我們使用了show: false來設(shè)置X軸的刻度不顯示。
如果你同時想去掉X軸的刻度線和刻度標(biāo)簽,你可以在xAxis中同時配置axisTick和axisLabel的show屬性為false。

每隔一個位置顯示數(shù)值
要設(shè)置X軸的刻度僅在每隔一個位置顯示數(shù)值,你可以通過配置axisLabel的interval屬性來實現(xiàn)。
以下是一個示例代碼:
xAxis: {
type: 'category',
data: data.map((item) => item.name),
axisTick: {
show: false, // 不顯示刻度
},
// axisLabel: {
// show: false // 不顯示刻度標(biāo)簽,一般都是要顯示的
// }
axisLabel: {
interval: 1 // 每隔一個位置顯示數(shù)值
},
},在上面的代碼中,我們使用了interval: 1來設(shè)置X軸的刻度間隔為1個位置,即每隔一個位置顯示一個數(shù)值。
你可以根據(jù)實際需求調(diào)整interval的值,例如,如果你想每隔兩個位置顯示一個數(shù)值,可以將interval設(shè)置為2。
效果:

設(shè)置折線圖樣式和顏色
假如折線圖中的空心圓設(shè)置為實心圓,你可以通過配置symbol和symbolSize來實現(xiàn)。以下是一個示例代碼:
series: [
{
data: data.map((item) => item.value),
type: 'line',
symbol: 'circle', // 設(shè)置為圓形
symbolSize: 8, // 設(shè)置圓形的大小
color: '#ff0000',//顏色
itemStyle: {
color: '#ff0000', // 設(shè)置圓形的填充顏色
borderColor: '#ff0000', // 設(shè)置圓形的邊框顏色
},
}
]在上面的代碼中,我們將折線圖的symbol屬性設(shè)置為circle,表示使用圓形作為標(biāo)記點的形狀。然后,通過symbolSize屬性設(shè)置圓形的大小。接下來,通過itemStyle屬性中的color和borderColor來設(shè)置圓形的填充顏色和邊框顏色,從而使圓形變?yōu)閷嵭摹?/p>
你可以根據(jù)實際需求調(diào)整symbolSize、color和borderColor的值,以滿足你的樣式要求。
效果:

配置tooltip
要在echarts的折線圖中,將鼠標(biāo)移到圓點時顯示坐標(biāo)的值,你可以通過配置tooltip來實現(xiàn)。
const options = {
tooltip: {
trigger: 'item', // 觸發(fā)類型為item,表示在圓點上觸發(fā)顯示
formatter: ': {c}', // 顯示的格式,表示類目值,{c}表示數(shù)值
},
};在上面的代碼中,我們在options中添加了tooltip配置項。通過設(shè)置trigger: 'item',表示當(dāng)鼠標(biāo)移到圓點上時觸發(fā)顯示。
formatter屬性用于設(shè)置顯示的格式。表示類目值(即X軸的值),{c}表示數(shù)值(即Y軸的值)。你可以根據(jù)需要自定義顯示的格式。
這樣,當(dāng)鼠標(biāo)移到圓點上時,會顯示對應(yīng)的坐標(biāo)值。
效果:

四、設(shè)置選中狀態(tài)
要實現(xiàn)選中的圓點放大的效果,你可以通過配置emphasis來實現(xiàn)。emphasis用于設(shè)置圖表元素在選中狀態(tài)下的樣式。
以下是一個示例代碼:
const options = {
//省略
series: [
{
data: data.map((item) => item.value),
type: 'line',
symbol: 'circle', // 設(shè)置為圓形
symbolSize: 8, // 設(shè)置圓形的大小
color: '#ff0000', //顏色
emphasis: {
// 設(shè)置選中狀態(tài)下的樣式
itemStyle: {
borderWidth: 6, // 邊框?qū)挾?
borderColor: '#ff0000', // 邊框顏色
shadowBlur: 10, // 陰影模糊度
shadowColor: 'rgba(0, 0, 0, 0.3)' // 陰影顏色
}
}
}
]
};在上面的代碼中,我們在折線圖的series配置項中添加了emphasis屬性。通過設(shè)置emphasis,可以定義選中狀態(tài)下圓點的樣式。
在itemStyle中,我們設(shè)置了選中狀態(tài)下的邊框?qū)挾?、邊框顏色和陰影效果。你可以根?jù)需求調(diào)整這些樣式屬性,以實現(xiàn)選中的圓點放大的效果。
當(dāng)用戶點擊或選中圓點時,echarts會自動應(yīng)用emphasis中定義的樣式。
效果:

五、怎么給X軸和Y軸加上單位
要給X軸和Y軸加上單位,你可以在Echarts的配置項中使用axisLabel屬性來設(shè)置軸標(biāo)簽的樣式和內(nèi)容。
也可以在Echarts的配置項中使用axisLabel屬性的formatter函數(shù),并結(jié)合條件判斷來實現(xiàn)以下是一個示例代碼,展示如何給X軸和Y軸加上單位:
const options = {
xAxis: {
type: 'category',
data: data.map((item) => item.name),
axisTick: {
show: false // 不顯示刻度
},
// axisLabel: {
// show: false // 不顯示刻度標(biāo)簽,一般都是要顯示的
// }
axisLabel: {
interval: 1, // 每隔一個位置顯示數(shù)值
formatter: '{value} (刻)'
}
},
yAxis: {
type: 'value',
axisLabel: {
formatter: function (value) {
return value + ' 個'
}
}
},
tooltip: {
trigger: 'item', // 觸發(fā)類型為item,表示在圓點上觸發(fā)顯示
formatter: ': {c}' // 顯示的格式,表示類目值,{c}表示數(shù)值
},
series: [
{
data: data.map((item) => item.value),
type: 'line',
symbol: 'circle', // 設(shè)置為圓形
symbolSize: 8, // 設(shè)置圓形的大小
color: '#ff0000', //顏色
emphasis: {
// 設(shè)置選中狀態(tài)下的樣式
itemStyle: {
borderWidth: 6, // 邊框?qū)挾?
borderColor: '#ff0000', // 邊框顏色
shadowBlur: 10, // 陰影模糊度
shadowColor: 'rgba(0, 0, 0, 0.3)' // 陰影顏色
}
}
}
]
}在上面的代碼中,我們在X軸和Y軸的axisLabel屬性中使用formatter函數(shù)來設(shè)置軸標(biāo)簽的格式。
在formatter函數(shù)中,我們使用{value}占位符來表示軸標(biāo)簽的值,并在其后添加我們想要的單位。
設(shè)置X軸和Y軸的名稱
設(shè)置name屬性就可以了,如:
yAxis: {
name: '(次)',
type: 'value'
},效果:

設(shè)置成平滑的曲線
series: [
{
//省略
smooth: true,
//省略
}
]
六、怎么設(shè)置縮小和放大
要實現(xiàn)縮小和放大的功能,你可以通過配置dataZoom來實現(xiàn)。dataZoom是echarts中用于數(shù)據(jù)區(qū)域縮放的組件。
以下是一個示例代碼:
const options = {
dataZoom: [
{
type: 'inside', // 內(nèi)置縮放組件
start: 0, // 默認(rèn)縮放起始位置
end: 100, // 默認(rèn)縮放結(jié)束位置
},
{
type: 'slider', // 滑動條縮放組件
start: 0, // 默認(rèn)縮放起始位置
end: 100, // 默認(rèn)縮放結(jié)束位置
},
],
};在上面的代碼中,我們在options中添加了dataZoom配置項。其中,dataZoom是一個數(shù)組,包含了兩個縮放組件的配置。
- 第一個配置項是內(nèi)置縮放組件,通過
type: 'inside'來指定。它允許在圖表內(nèi)部進(jìn)行縮放操作。start和end屬性指定了默認(rèn)的縮放起始位置和結(jié)束位置,可以根據(jù)需要進(jìn)行調(diào)整。 - 第二個配置項是滑動條縮放組件,通過
type: 'slider'來指定。它在圖表底部顯示一個滑動條,可以通過拖動滑動條進(jìn)行縮放操作。同樣,start和end屬性指定了默認(rèn)的縮放起始位置和結(jié)束位置。
你可以根據(jù)實際需求調(diào)整start和end的值,以滿足你的縮放需求。
效果:

最近就是用Vue3+Echarts寫項目,所以總結(jié)了一些常用的屬性。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用vue.js在頁面內(nèi)組件監(jiān)聽scroll事件的方法
今天小編就為大家分享一篇使用vue.js在頁面內(nèi)組件監(jiān)聽scroll事件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
element ui的el-input-number修改數(shù)值失效的問題及解決
這篇文章主要介紹了element ui的el-input-number修改數(shù)值失效的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
vue?watch監(jiān)聽觸發(fā)優(yōu)化搜索框的性能防抖節(jié)流的比較
這篇文章主要為大家介紹了vue?watch監(jiān)聽觸發(fā)優(yōu)化搜索框的性能防抖節(jié)流的比較,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
使用webstorm配置vue+element開發(fā)環(huán)境
這篇文章主要介紹了使用webstorm配置vue+element開發(fā)環(huán)境,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10

