vue使用ECharts實(shí)現(xiàn)折線圖和餅圖
在開(kāi)發(fā)后臺(tái)管理項(xiàng)目時(shí),需要統(tǒng)計(jì)后臺(tái)用戶數(shù)據(jù),以折線圖和餅圖的形式顯示,這邊采用apache-echarts來(lái)實(shí)現(xiàn)需求。
1.安裝echarts和引入
npm install echarts --save import * as echarts from 'echarts';
2.使用echarts實(shí)現(xiàn)pie圖
<template>
<div id="chartPie" class="pie-wrap"></div>
</template>
<script>
import * as echarts from 'echarts';
require('echarts/theme/macarons');//引入主題
export default {
data() {
return {
chartPie: null
}
},
mounted() {
this.$nextTick(() => {
this.drawPieChart();
})
},
methods: {
drawPieChart() {
let mytextStyle = {
color: "#333",
fontSize: 18,
};
let mylabel = {
show: true,
position: "right",
offset: [30, 40],
formatter: ' : {c} (loj6v26%)',
textStyle: mytextStyle
};
this.chartPie = echarts.init(document.getElementById('chartPie'),'macarons');
this.chartPie.setOption({
title: {
text: 'Pie Chart',
subtext: '純屬虛構(gòu)',
x: 'center'
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/> : {c} (a4pd1oj%)",
},
legend: {
data: ['直接訪問(wèn)', '郵件營(yíng)銷', '聯(lián)盟廣告', '視頻廣告', '搜索引擎'],
left:"center",
top:"bottom",
orient:"horizontal",
},
series: [
{
name: '訪問(wèn)來(lái)源',
type: 'pie',
radius: ['50%', '70%'],
center: ['50%', '50%'],
data: [
{value: 335, name: '直接訪問(wèn)'},
{value: 310, name: '郵件營(yíng)銷'},
{value: 234, name: '聯(lián)盟廣告'},
{value: 135, name: '視頻廣告'},
{value: 1548, name: '搜索引擎'}
],
animationEasing: 'cubicInOut',
animationDuration: 2600,
label: {
emphasis: mylabel
}
}
]
});
}
}
}
</script>
<style lang='less' scope>
.pie-wrap{
width:100%;
height:400px;
}
</style>

3.使用echarts實(shí)現(xiàn)line圖
<template>
<!-- 為 ECharts 準(zhǔn)備一個(gè)具備大小(寬高)的 DOM -->
<div id="chartLine" class="line-wrap"></div>
</template>
<script>
import * as echarts from 'echarts';
require('echarts/theme/shine');//引入主題
export default {
data() {
return {
chartLine: null
}
},
mounted() {
this.$nextTick(() => {
this.drawLineChart();
})
},
methods: {
drawLineChart() {
this.chartLine = echarts.init(this.$el,'shine');// 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
let option = {
tooltip : {
trigger: 'axis'
},
legend: {
data:['郵件營(yíng)銷','聯(lián)盟廣告','視頻廣告','直接訪問(wèn)','搜索引擎']
},
calculable : true,
xAxis : [
{
type : 'category',
boundaryGap : false,
axisTick: {
show: false
},
data : ['周一','周二','周三','周四','周五','周六','周日']
}
],
yAxis : [
{
type : 'value',
axisTick: {
show: false
},
name: '(人)'
}
],
series : [
{
name:'郵件營(yíng)銷',
type:'line',
stack: '總量',
data:[120, 132, 101, 134, 90, 230, 210]
},
{
name:'聯(lián)盟廣告',
type:'line',
stack: '總量',
data:[220, 182, 191, 234, 290, 330, 310]
},
{
name:'視頻廣告',
type:'line',
stack: '總量',
data:[150, 232, 201, 154, 190, 330, 410]
},
{
name:'直接訪問(wèn)',
type:'line',
stack: '總量',
data:[320, 332, 301, 334, 390, 330, 320]
},
{
name:'搜索引擎',
type:'line',
stack: '總量',
data:[820, 932, 901, 934, 1290, 1330, 1320]
}
]
};
// 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表
this.chartLine.setOption(option);
}
}
}
</script>
<style lang='less' scope>
.line-wrap{
width:50%;
height:400px;
}
</style>

4.echarts基礎(chǔ)概念
1)echarts實(shí)例
一個(gè)網(wǎng)頁(yè)中可以創(chuàng)建多個(gè) echarts 實(shí)例,每個(gè) echarts 實(shí)例 中可以創(chuàng)建多個(gè)圖表和坐標(biāo)系等等(用 option 來(lái)描述)。準(zhǔn)備一個(gè) DOM 節(jié)點(diǎn)(作為 echarts 的渲染容器),就可以在上面創(chuàng)建一個(gè) echarts 實(shí)例。
2)系列(series)
一組數(shù)值以及他們映射成的圖,一個(gè) 系列 包含的要素至少有:一組數(shù)值、圖表類型(series.type)、以及其他的關(guān)于這些數(shù)據(jù)如何映射成圖的參數(shù)。
echarts 里系列類型(series.type)就是圖表類型。系列類型(series.type)至少有:line(折線圖)、bar(柱狀圖)、pie(餅圖)
3)組件(component)
echarts 中至少有這些組件:xAxis(直角坐標(biāo)系 X 軸)、yAxis(直角坐標(biāo)系 Y 軸)、grid(直角坐標(biāo)系底板)、dataZoom(數(shù)據(jù)區(qū)縮放組件)、visualMap(視覺(jué)映射組件)、tooltip(提示框組件)、toolbox(工具欄組件)、series(系列)、...
5.echarts常用配置項(xiàng)和API
1)title標(biāo)題組件,包含主標(biāo)題和副標(biāo)題
title: {
text: 'Pie Chart',//主標(biāo)題文本
subtext: '純屬虛構(gòu)',//副標(biāo)題文本
x: 'center',
textStyle:{//主標(biāo)題樣式
color: "#333",
fontSize: 18
},
subtextStyle:{},//副標(biāo)題樣式
itemGap: 10,//主副標(biāo)題之間的間距
}
2)legend圖例組件
legend: {
left:"center",//圖例組件離容器左側(cè)的距離
top:"bottom",//圖例組件離容器上側(cè)的距離
orient:"horizontal",//圖例列表的布局朝向
itemGap :20,//圖例每項(xiàng)之間的間隔
formatter: function (name) {//用來(lái)格式化圖例文本,支持字符串模板和回調(diào)函數(shù)兩種形式~~~~
return 'Legend ' + name;
},
icon:'circle',//圖例項(xiàng)的 icon
data: [
{
icon: 'triangle',
textStyle: {
color: 'red'
},
name: '直接訪問(wèn)'
},
'郵件營(yíng)銷', '聯(lián)盟廣告', '視頻廣告', '搜索引擎'],//圖例的數(shù)據(jù)數(shù)組
}
3)xAxis直角坐標(biāo)系 grid 中的 x 軸
xAxis : [
{
type : 'category',//坐標(biāo)軸類型
boundaryGap : false,
axisTick: {//坐標(biāo)軸刻度相關(guān)設(shè)置
show: false
},
data : ['周一','周二','周三','周四','周五','周六','周日']//類目數(shù)據(jù)
}
]
4)yAxis直角坐標(biāo)系 grid 中的 y 軸
yAxis : [
{
type : 'value',//坐標(biāo)軸類型,`'value'` 數(shù)值軸,適用于連續(xù)數(shù)據(jù)
axisTick: {
show: false
},
name: '(人)'
}
]
5)tooltip提示框組件
tooltip : {
trigger: 'axis',//觸發(fā)類型,'axis'坐標(biāo)軸觸發(fā),主要在柱狀圖,折線圖等會(huì)使用類目軸的圖表中使用
formatter: "{a} <br/> : {c} (lvq1x6e%)",//模板變量有 `{a}`, ``,`{c}`,`umhctdg`,`{e}`,分別表示系列名,數(shù)據(jù)名,數(shù)據(jù)值等
}
6)series系列列表,每個(gè)系列通過(guò) type 決定自己的圖表類型
A.series-line
series : [
{
name:'郵件營(yíng)銷',
type:'line',
stack: '總量',
data:[120, 132, 101, 134, 90, 230, 210],//系列中的數(shù)據(jù)內(nèi)容數(shù)組
areaStyle:{//區(qū)域填充樣式
color:'red'
},
lineStyle:{//線條樣式
color:'#000'
},
emphasis:{//圖形的高亮樣式
label:{
color:'red'
}
}
}
]
B.series-pie
series : [
{
name: '訪問(wèn)來(lái)源',
type: 'pie',
radius: ['50%', '70%'],//餅圖的半徑,數(shù)組的第一項(xiàng)是內(nèi)半徑,第二項(xiàng)是外半徑
center: ['50%', '50%'],//餅圖的中心(圓心)坐標(biāo),數(shù)組的第一項(xiàng)是橫坐標(biāo),第二項(xiàng)是縱坐標(biāo)。支持設(shè)置成百分比,設(shè)置成百分比時(shí)第一項(xiàng)是相對(duì)于容器寬度,第二項(xiàng)是相對(duì)于容器高度
roseType: false,//是否展示成南丁格爾圖,通過(guò)半徑區(qū)分?jǐn)?shù)據(jù)大小
data: [//系列中的數(shù)據(jù)內(nèi)容數(shù)組
{value: 335, name: '直接訪問(wèn)'},
{value: 310, name: '郵件營(yíng)銷'},
{value: 234, name: '聯(lián)盟廣告'},
{value: 135, name: '視頻廣告'},
{value: 1548, name: '搜索引擎'}
],
animationEasing: 'cubicInOut',//初始動(dòng)畫(huà)的緩動(dòng)效果
animationDuration: 2600,//初始動(dòng)畫(huà)的時(shí)長(zhǎng)
label: {
emphasis: mylabel//高亮的扇區(qū)和標(biāo)簽樣式
}
}
]
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Vue2利用echarts繪制折線圖,餅圖和大圖
- echarts折線圖流動(dòng)特效的實(shí)現(xiàn)全過(guò)程(非平滑曲線)
- vue+echarts繪制折線圖、柱狀圖和扇形圖教程
- Vue+Echarts實(shí)現(xiàn)繪制動(dòng)態(tài)折線圖
- vue+echarts實(shí)帶漸變效果的折線圖
- Python?pyecharts繪制折線圖詳解
- vue使用echarts實(shí)現(xiàn)折線圖
- Echarts基本入門(mén)之柱狀圖、折線圖通用配置
- echarts折線圖月份數(shù)據(jù)不足自動(dòng)補(bǔ)0和日期達(dá)到數(shù)據(jù)連續(xù)的效果(最新推薦)
相關(guān)文章
vue中使用百度腦圖kityminder-core二次開(kāi)發(fā)的實(shí)現(xiàn)
這篇文章主要介紹了vue中使用百度腦圖kityminder-core二次開(kāi)發(fā)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
基于vue2.0+vuex的日期選擇組件功能實(shí)現(xiàn)
這篇文章主要介紹了 基于vue2.0+vuex的日期選擇組件功能實(shí)現(xiàn),詳細(xì)介紹了使用vue編寫(xiě)的日期組件,,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-03-03
Vue?Echarts實(shí)現(xiàn)帶滾動(dòng)效果的柱形圖
這篇文章主要為大家詳細(xì)介紹了Vue?Echarts實(shí)現(xiàn)帶滾動(dòng)效果的柱形圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
Vue實(shí)現(xiàn)動(dòng)態(tài)路由導(dǎo)航的示例
本文主要介紹了Vue實(shí)現(xiàn)動(dòng)態(tài)路由導(dǎo)航的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Vue 打包的靜態(tài)文件不能直接運(yùn)行的原因及解決辦法
這篇文章主要介紹了Vue 打包的靜態(tài)文件不能直接運(yùn)行的原因及解決辦法,幫助大家更好的理解和學(xué)習(xí)vue框架,感興趣的朋友可以了解下2020-11-11
Vue3如何自定義指令directive(如權(quán)限控制)
本文詳細(xì)介紹了如何在Vue3項(xiàng)目中創(chuàng)建自定義指令directive1,首先,在src/directives/index.ts文件中引入自定義指令,然后,創(chuàng)建src/directives/permission.ts文件來(lái)定義具體指令邏輯,在main.ts文件中引入并注冊(cè)該指令,最后,在頁(yè)面中使用自定義指令
Vue程序化的事件監(jiān)聽(tīng)器(實(shí)例方案詳解)
本文通過(guò)兩種方案給大家介紹了Vue程序化的事件監(jiān)聽(tīng)器,每種方案通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-01-01
Vue組件教程之Toast(Vue.extend 方式)詳解
這篇文章主要給大家介紹了關(guān)于Vue組件教程之Toast(Vue.extend 方式)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
uniapp Vue3中如何解決web/H5網(wǎng)頁(yè)瀏覽器跨域的問(wèn)題
存在跨域問(wèn)題的原因是因?yàn)闉g覽器的同源策略,也就是說(shuō)前端無(wú)法直接發(fā)起跨域請(qǐng)求,同源策略是一個(gè)基礎(chǔ)的安全策略,但是這也會(huì)給uniapp/Vue開(kāi)發(fā)者在部署時(shí)帶來(lái)一定的麻煩,這篇文章主要介紹了在uniapp Vue3版本中如何解決web/H5網(wǎng)頁(yè)瀏覽器跨域的問(wèn)題,需要的朋友可以參考下2024-06-06

