vue專案中使用echarts 遇到問題總結

2021-08-15 02:40:56 字數 1857 閱讀 3627

需要注意echarts版本不同,部分屬性可能有所不同,我用的是echarts4.0.

一、echarts圖表自適應問題。

自適應**

(function (doc, win) else

};if (!doc.addeventlistener) return;

recalc();

win.addeventlistener(resizeevt, recalc, false);

doc.addeventlistener('domcontentloaded', recalc, false);

})(document, window);

使用自適應rem 來畫echarts圖表。發現剛開始載入,canvas 的寬高始終是rem未實現之前元素的寬高,打斷點發現是載入順序原因(加上document.ready後發現部分還是有問題),換算rem之前就獲取了元素寬高,導致圖表很小,才發現自適應**只有在瀏覽器視窗大小發生變化和dom結構載入完成後才會執行函式換算,所以沒發生之前就先呼叫recalc(); 

二、echarts圖表的迴圈問題

使用vue開發,其中需要用到圖表的迴圈,問題來了,echarts都是通過不同的id來初始化圖表的,而我用到了v-for ,一次迴圈中的兩個不同的圖表index相同,只能通過

動態設定id來實現了,但是id沒賦值之前echarts就初始化了,導致拿到的id 為undefined,所以寫了個定時器延遲呼叫,顯然此法並不好,但想不到更好的了,上**;

for(var i = 0;ivar timer = setinterval(quw,20);

var t = 0;

function quw()

clearinterval(timer);清除定時器

三、柱圖

1、柱圖資料條最大最小值標註不同於其他資料的顏色(js僅僅考慮到只有乙個最大、最小值的情況)

option中

series:[

colorlist[maxindex]='#eb6100';

colorlist[minindex]='#22ac38';

return colorlist[params.dataindex]

}2、柱圖資料標籤僅顯示最大最小值,其他值滑鼠懸浮上去顯示

顯然label這並不能像color 一樣返回陣列,需要在data屬性上下功夫,所以data裡面就不能簡單存值,而是存在data["value":];

例:"data":

for(var i=0;idata[i].label=;

data[i].emphasis=}

}四、雷達圖『

1、圖例問題

vue-cli 構建的專案,雷達圖就是沒有圖例,相同**放到html就可以,後來才發現是沒引用legend;

切記vue-cli中的title\legend等需要引入,』require('echarts/lib/component/legend');

除此之外,圖例的圖形在data的icon中設定了rect,原以為是正方形了結果,結果是矩形,也沒錯啦,所以還需要設定

color:["#5cb5d6","#32b16c","#eb6877","#f8b551"], 圖例顏色

legend: ,],圖例形狀

itemwidth:12,圖例寬

itemheight:12,圖例高

textstyle:

},另外資料的線顏色已經在data中設定,但圖例顏色卻不一致,在legend中也沒法設定,只能在legend同級color中把圖例顏色設定;

2、雷達圖資料標籤顯示

series: [,

label就是顯示不出來,納悶,後來才發現只要   symbolsize:0,就顯示不出來,所以要不不加,要不改為  symbolsize:1,解決

在 Vue 專案中使用 ECharts

重要檔案版本 在 vue 專案中使用 echarts 只需要在 vue 元件的mounted生命週期中 初始化 echarts,然後在每次配置項有變更時呼叫setoption 方法更新配置即可 專案模板原始碼 class default chart style div template import...

在vue專案中使用echarts

安裝echarts依賴 npm install echarts s 建立圖表 全域性引入 main.js 引入echarts import echarts from echarts vue.prototype.echarts echarts 這裡也可以在router下index.js引入,看規定 h...

vue專案中使用echarts元件

按照這裡的操作 安裝 echarts 修改 在 webpack 環境下指向 components echarts.vue 手動引入 echarts 各模組來減小打包體積 import echarts lib chart bar import echarts lib component tooltip...