資料視覺化:(echarts入門手冊:vue+echarts+餅圖demo詳解)
阿新 • • 發佈:2019-01-03
1.示例截圖
1.1vue前端框架做基礎
1.2餅圖的Demo
2.怎麼引入
2.1用npm新增相關依賴檔案
在當前前端檔案為路徑的命令列中輸入:
npm install echarts --save
等待安裝完畢
2.2在main.js檔案中引入
//這一行:
import echarts from 'echarts'
//和這一行:
Vue.prototype.$echarts = echarts
3.寫路由引導到demo單獨的.vue頁面
(可以隨意放在頁面任意位置,為了清晰我單獨開一個展示頁)
在router的index.js檔案的routes:[]中新增一個路由:
{
path:'/echarts/pie',
name:'testcharts_pie',
component:echartspie
},
# Path:是url中要接受的路徑,即接受後到這個router找
# Name:就是名字,亂取
# Component:導航就導到這個元件,比如叫王鋼蛋
同樣在該檔案中Import一個叫王剛蛋的元件,導航到這個元件的地址:
import echartspie from '@/components/echarts/echartspie.vue'
完了在導航頁中新增一個連結:
<router-link to="echarts/pie"><h1>echarts_demo_bar</h1></router-link>
這個”to=”的內容就由去和path比對找到路由,再由router導航找到王剛蛋這個元件
4.echarts頁面框架
開闢一個<div>塊,作為echarts的地基:
<template>
<div>
資料視覺化學習——餅圖
<div style="width: 40%;height: 500px;border:1px solid rgb(180,180,180)" id="echartss"></div>
</div>
</template>
在script中寫資料視覺化主體
<script>
//先要匯入依賴的例項
import echarts from 'echarts'
//掛載前初始化echarts例項
mounted: function () {
// 基於準備好的dom,初始化echarts例項
let myChart = echarts.init(document.getElementById('echartss'))
// 繪製圖表,this.echarts1_option是資料
myChart.setOption(this.echarts1_option)
},
//在echarts_option中寫東西就行了,官方文件直接下這裡就可以自己玩了
data(){
return{
echarts1_option:{
//主體程式碼塊
}}}
</script>
5.餅圖demo詳解
這是一個完整的demo,可以用作基礎模板。具體解釋寫在註釋中了,不懂可以查閱官方文件,中國人寫的,很好懂
其中,series的資料結構,visualMap的對映渲染,理解起來有點麻煩,註釋沒有看懂的可以搜關鍵字。
echarts1_option:{
//需要的話下面內容copy到主體程式碼塊即可
backgroundColor: '#45515a',
//標題
title: {
text: '流量來源',
subtext:'餅圖示例',
left: 'center',
top: 20,
textStyle: {
color: '#ccc',
fontStyle:'italic'//標題字型
}
},
//彈窗,響應滑鼠指向,顯示具體細節
tooltip : {
trigger: 'item',//以具體專案觸發彈窗
/*
內容格式器,一共有abcd四個代號,例如在餅圖中,{a}指系列,即流量來源,{b}指資料專案,如搜尋引擎,{c}指數值,如
value,{d}百分比。{x}本身代表了相應字元,可以和其他字元拼湊,在彈窗中顯示
*/
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
//圖例,選擇要顯示的專案
legend:{
orient:'vertical',
left:'left',
textStyle:{
color:'#c8c8d0'
},
data:['直接訪問','郵件營銷','聯盟廣告','視訊廣告','搜尋引擎'] //注意要和資料的name相對應
},
//工具箱
toolbox:{
show:true,//顯示工具箱
feature:{
dataView:{show:true}, //以文字形式顯示資料
restore:{show:true}, //還原
//dataZoom:{show:true}, //區域縮放
saveAsImage:{show:true}, //儲存圖片
//magicType:{type:['line','bar']}//動態資料切換,資料顯示可以在該規定內容中切換顯示方式,
}
},
//視覺對映元件,將資料對映到視覺元素上
visualMap: {
show: false,
min: 10,
max: 650,
dimension: 0, //選取資料的維度,如人資料:[身高,體重],則1代表將體重進行對映,預設值為陣列的最後一位
// seriesIndex: 4, //選取資料集合中的哪個陣列,如{一班},{二班},預設選取data中的所有資料集
inRange: {
//選定了要對映的物件,用inRange詳細寫要渲染的具體細節,[x,y]中x指最小值對應的量(亮度,飽和度等),y指最大值對應的量,其餘的按各自value線性渲染
color:['red'],
colorLightness: [0,1],
colorSaturation:[0,1]
}
},
//資料
series : [
{
name:'訪問來源',
type:'pie',
radius : '55%',
center: ['50%', '50%'],
data:[
{value:335, name:'直接訪問'},
{value:310, name:'郵件營銷'},
{value:274, name:'聯盟廣告'},
{value:235, name:'視訊廣告'},
{value:400, name:'搜尋引擎'}
].sort(function (a, b) { return a.value - b.value; }),
roseType: 'radius',//角度和半徑展現百分比,'area'只用半徑展現
label: { //餅圖圖形的文字標籤
normal: { //下同,normal指在普通情況下樣式,而非高亮時樣式
textStyle: {
color: 'rgba(255, 255, 255, 0.3)'
}
}
},
labelLine: { //引導線樣式
normal: {
lineStyle: {
color: 'rgba(255, 255, 255, 0.3)'
},
smooth: 0.5, //0-1,越大越平滑彎曲
length: 10, //從塊到文字的第一段長
length2: 20 //拐彎到文字的段長
}
},
itemStyle: { //圖例樣式
normal: {
color: '#97413c',
shadowBlur: 50,//陰影模糊程度
shadowColor: 'rgba(0, 0, 0, 0.5)'//陰影顏色,一般黑
}
},
animationType: 'scale', //初始動畫效果,scale是縮放,expansion是展開
animationEasing: 'elasticOut', //初始動畫緩動效果
animationDelay: function (idx) { //資料更新動畫時長,idx限定了每個資料塊從無到有的速度
return Math.random() * 200;
}
}
]
}
比較常用的模組有折線,直方,餅圖,地圖,散點,路徑,熱力等,爭取多寫一點模板以後可以照葫蘆畫瓢,還有動態匯入資料和資料處理,形參完整專案。