vue echart使用總結


vue請求映射數據接口實例:

<template>
  <div ref="myEchart">
  </div>
</template>
<script>
import echarts from 'echarts' export default { name: 'payEchart', data () { return { chart: null, dataList: [], dateStr: [] } }, mounted () { }, beforeDestroy () { if (!this.chart) { return } this.chart.dispose() this.chart = null }, methods: { initChart () { this.chart = echarts.init(this.$refs.myEchart) // 把配置和數據放這里 this.chart.setOption({ title: { text: 'echart圖標題', subtext: '單位(--)', textStyle: { fontSize: 14 } }, tooltip: { trigger: 'axis' }, legend: { data: ['最高溫度', '最低溫度'] }, toolbox: { show: true, feature: { dataZoom: { yAxisIndex: 'none' }, dataView: {readOnly: false}, magicType: {type: ['line', 'bar']}, restore: {}, saveAsImage: {} } }, xAxis: { type: 'category', boundaryGap: false, data: this.dateStr }, yAxis: { type: 'value', minInterval: 1, boundaryGap: [ 0, 0.1 ] }, grid: { width: '80%' }, series: this.dataList }) }, queryData() { this.$api.queryData().then(res => { if (res.meta.success) { this.dataList = res.data.dataList this.dateStr = res.data.dateStr this.$nextTick(() => { this.initChart() }) ////異步更新隊列,回調函數在 DOM 更新完成后就會調用 } else { this.$Message.error(res.meta.message) } }).catch(err => { this.$Modal.error({ title: '查詢后端接口', content: err }) }) } }, created () { this.queryData() } } </script>

一、修改主標題和副標題

title : {
text: '未來一周氣溫變化', //寫入主標題
subtext: '純屬虛構', //寫入副標題
x:'left',//控制標題水平方向的位置'center' | 'left' | 'right' | {number}
y:'top',//控制標題垂直方向的位置'top' | 'bottom' | 'center' | {number}
textStyle:{
fontSize: 18,
fontWeight: 'bolder',
color: '#333'
}, //標題字體樣式
subtextStyle{
fontSize: 18,
fontWeight: 'bolder',
color: '#333'
}, //副標題字體樣式
},

二、修改統計圖的寬和高,以及位置和最外面的邊框

grid:{
x:'10%',//控制統計圖左上角的x坐標位置,可為數值單位是px,可用百分比
y:'10%',//控制統計圖左上角y坐標的位置,可為數值單位是px,可用百分比
width:'80%',//控制統計圖的寬度
height:'90%',//控制統計圖的高度
borderWidth:0,//控制邊框的線條粗細,為0則不顯示
borderColor:'#ccc'//修改邊框的線條顏色,如果borderWidth為0則不起作用
},

三、x軸的樣式控制(y軸同上)

xAxis : [
{
type : 'category',//坐標軸類型,橫軸默認為類目型'category',縱軸默認為數值型'value'
data: ['A棟', 'B棟', 'C棟', 'D棟', 'E棟', 'F棟'],//x坐標軸上顯示的數據
boundaryGap:true,//控制x軸的數值是否頂頭,默認為true留空,false則頂頭
splitLine: {//控制網格的線條樣式
show:true,
lineStyle:{
color: '#48b',
width: 2,
type: 'solid'
}
},
axisLine:{//x軸的樣式控制
show: true, //顯示與否
lineStyle:{//線條樣式
color: '#48b',
width: 2,
type: 'solid'
}
},

axisTick:{//控制x軸上的間隔突出的小線條樣式
show:'true',//顯示與否
lineStyle:{//線條樣式
color: '#48b',
width: 2,
type: 'solid'
}
},
axisLabel: {//控制x軸上的文字的樣式
show: true,//顯示與否
textStyle: { color: '#fff' },//控制x軸字體樣式
formatter: '{value} °C',//軸上的數據帶單位
}
}
],

四、鼠標移動到數據上線條的樣式控制

1. 鼠標移動到數據上出現線條的樣式控制

tooltip : {
  trigger: 'axis',   axisPointer:{     type: 'line',     lineStyle: {       color: '#929bb6',       width: 1,       type: 'solid'     }   } },

2. 鼠標移動到數據上不出現線條出現陰影

tooltip: {
  show: true,   trigger: 'axis',   axisPointer:{     type: 'shadow',     shadowStyle: {       color: 'rgba(88,101,137,0.3)',       width: 'auto',       type: 'default'     }   } },

五、增加兩條y軸,並且指定哪個個數據使用哪個y軸

yAxis : [
{
type : 'value',
splitNumber: 5, // 數值軸用,分割段數,默認為5
boundaryGap:[0,0],
splitLine:{lineStyle:{color:'#505a73'}},
axisLine:{show: false},
axisLabel: { show: true, textStyle: { color: '#fff' },formatter: '{value} ' }
},
{
type : 'value',
splitNumber: 5, // 數值軸用,分割段數,默認為5
boundaryGap:[0,0],
axisLine:{show: false},
splitLine:{lineStyle:{color:'#505a73'}},
axisLabel: { show: true, textStyle: { color: '#fff' },formatter: '{value} '},
show:'true',
position: 'right',//控制新y軸的位置
}
],
series : [
{
"name":"移動到達數",
"type":"bar",
"yAxisIndex":'1',//使用第二條y軸
"data":[5, 20, 40, 10, 10, 20,5, 20, 40, 10, 10, 20]
},
{
"name":"移動收入(萬元)",
"type":"bar",
"yAxisIndex":'0',//指定第一條y軸,默認都為使用第一條
"data":[1.55, 2.90, 1.70, 9.10, 8.10, 1.90,5, 2.50, 4.30, 1.40, 1.10, 2.60]
}
]

六、折線圖上顯示最大值最小值

series: [
  {
    name: '', // 系列名稱
    type: 'line', // 圖表類型,折線圖line、散點圖scatter、柱狀圖bar、餅圖pie、雷達圖radar
    data: [18.618, 18.386, 18.961, 18.825, 18.643, 19.04], symbolSize:6,//控制折線圖上表示數值的圖標的大小 symbol:'emptyCircle',//控制折線圖上表示數值的樣式  itemStyle: { normal: { lineStyle: { color: '#8a92ad', } } }, markPoint : { data : [ {type : 'max', name: '最大值'}, {type : 'min', name: '最小值'} ] } } ]

七、圖例的樣式控制

legend: {
  data:['寬帶凈增','滲透率'], x:'right',//控制圖例的位置 y:20,//控制圖例的位置 textStyle: {// 圖例文字樣式 color: '#fff', // 圖例文字顏色 fontSize:14 } },

八、軸上的數據太長,換行顯示

xAxis: [ // 直角坐標系中橫軸數組
  {
// boundaryGap : false,
    type: 'category', // 坐標軸類型,橫軸默認為類目軸,數值軸則參考yAxis說明
    data: ['福田區', '南山區', '羅湖區', '寶安區', '龍崗區', '坪大區', '龍華區', '光明區', '鹽田區','蛇口通訊'],//軸上數據
    axisLine:{show: false},//x軸
    splitLine:{lineStyle:{color:'#505a73'}},//網格顏色 
    axisLabel: { show: true, textStyle: { color: '#BEC5D6' }, interval : 0, formatter : function(params){//控制軸上數據換行顯示 var newParamsName = ""; var paramsNameNumber = params.length; var provideNumber = 2; var rowNumber = Math.ceil(paramsNameNumber / provideNumber); if (paramsNameNumber > provideNumber) { for (var p = 0; p < rowNumber; p++) { var tempStr = ""; var start = p * provideNumber; var end = start + provideNumber; if (p == rowNumber - 1) { tempStr = params.substring(start, paramsNameNumber); } else { tempStr = params.substring(start, end) + "\n"; } newParamsName += tempStr; } } else { newParamsName = params; } return newParamsName } }, //軸上字體顏色 axisTick:{show:false}, } ]

九、easyui里面的tab使用統計圖,統計圖寬度無法自適應

//解決tab里面統計圖不按照div的百分百的寬度顯示,overDetailFlowPack無法自適應的div的id
$("#overDetailFlowPack").css( 'width', $("#overDetailFlowPack").width() );

十、echart中統計圖表被壓縮不能正常地自適應

(1)x軸數據為數組['array1'],如果賦值為字符串'array1',就會出現統計圖不能正常展開的情況。

(2)使用jqueryEasyUi,tab切換顯示不同的統計圖,也會出現統計圖被擠壓變形的情況,解決方法是用js獲取容器的寬度賦值給容器。

(3)在需要顯示隱藏的模塊中,一開始隱藏,點擊顯示的時候會看到統計圖被擠壓變形,此時,需要在點擊顯示模塊的時候重新加載一次統計圖便可以正常顯示。

十一、統計圖上每個點都顯示對應的數據

series : [
  {
    name:'視頻用戶(萬)', type:'bar', itemStyle : { normal: {label : {show: true}}},//控制統計圖上顯示數據 data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6,162.2, 32.6, 20.0, 6.4, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2] }, { name:'視頻用戶滲透率', type:'line', yAxisIndex: 1, itemStyle : { normal: {label : {show: true,formatter:function(p){return p.value > 0 ? (p.value +'%'):'';}}}},//控制顯示的數據為百分比數值  markLine : { data : [ {type : 'average', name: '平均值'}//顯示平均值水平線  ] }, data:[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4,23.0, 16.5, 12.0, 6.2, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5,12.0, 6.2] } ]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM