echarts折線圖legend太多與圖重疊處理辦法
getGridTop(legendData) {
varDEFAULT_LINE_NUM = 10; // 采用默認(rèn)grid.top值的默認(rèn)線條數(shù)目;
var DEFAULT_GRID_TOP_PECENTAGE = 18; // 默認(rèn)的grid.top百分比(整數(shù)部分);
var DELTA_GRID_TOP_PECENTAGE = 5; // 超出默認(rèn)線條數(shù)時的grid.top百分比增量(整數(shù)部分);
var MAX_GRID_TOP_PECENTAGE = 20; // 最大的grid.top百分比(整數(shù)部分);
var topInt;
var gridTop;
var len = legendData.length;
// 如果圖例太多,需要調(diào)整option中的grid.top值才能避免重疊
topInt = len > DEFAULT_LINE_NUM
? DEFAULT_GRID_TOP_PECENTAGE
+ DELTA_GRID_TOP_PECENTAGE * (Math.ceil((len - DEFAULT_LINE_NUM) / 10))
: DEFAULT_GRID_TOP_PECENTAGE;
if (topInt >= MAX_GRID_TOP_PECENTAGE) {
topInt = MAX_GRID_TOP_PECENTAGE;
}
gridTop = topInt + "%";
return gridTop;
},
echarts 代碼
//第一步:處理 legend 過多,一行顯示個數(shù)控制
if(this.lincData.length>0){
this.lincData.forEach((el,index) => {
let data= Object.values(el)
let name = data.shift()
//一行顯示個數(shù)控制
if(index%10==0){
legendname.push("") //分行
}
legendname.push(name)
series.push(
{
name: name,
type: 'line',
stack: 'Total',
data: data
}
)
});
}
let gridtop = this.getGridTop(legendname)
let option = {
......
tooltip: {
trigger: 'axis',
// 第三步:處理鼠標(biāo)放在圖片內(nèi)容因為過多顯示不全
formatter:function(params){
let res = params[0].axisValueLabel;
function getHtml(param){
let str = '<div style="float: left"><span style="background: '+param.color+'; width: 11px; height: 11px; border-radius: 11px;float: left; margin: 5px 3px;"></span>'+
param.seriesName+':'+param.data+'  </div>';
return str;
}
let flag=false;
res += '<div style="clear: both">';
for (let i = 0; i < params.length; i++) {
res += getHtml(params[i]);
if (params.length>11 && i%2==1){
res += '</div><div style="clear: both">';
}
if (params.length <=11){
res += '</div><div style="clear: both">';
}
}
res += "</div>";
return res;
}
},
//第一步
legend: {
data: legendname
},
//第二步:處理legendname與圖重疊
grid: {
top:gridtop,
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
....
}處理前:

處理后:

總結(jié)
到此這篇關(guān)于echarts折線圖legend太多與圖重疊處理辦法的文章就介紹到這了,更多相關(guān)echarts折線圖legend與圖重疊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript中誤用/g導(dǎo)致的正則test()無法正確重復(fù)執(zhí)行的解決方案
這篇文章主要介紹了JavaScript中誤用/g導(dǎo)致的正則test()無法正確重復(fù)執(zhí)行的解決方案的相關(guān)資料,需要的朋友可以參考下2016-07-07
ES6中的Javascript解構(gòu)的實現(xiàn)
這篇文章主要介紹了ES6中的Javascript解構(gòu)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
JS實現(xiàn)圖文并茂的tab選項卡效果示例【附demo源碼下載】
這篇文章主要介紹了JS實現(xiàn)圖文并茂的tab選項卡效果,涉及javascript響應(yīng)鼠標(biāo)事件動態(tài)修改頁面元素屬性的相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-09-09
JavaScript利用時間分片實現(xiàn)高性能渲染數(shù)據(jù)詳解
為了豐富我們的知識體系,我們有必要了解并清楚當(dāng)遇到大量數(shù)據(jù)時,如何才能在不卡主頁面的情況下渲染數(shù)據(jù),以及其中背后的原理,本文介紹了如何使用時間分片的方式來渲染大量數(shù)據(jù),感興趣的可以了解下2023-05-05
分享5個小技巧讓你寫出更好的 JavaScript 條件語句
在使用 JavaScript 時,我們常常要寫不少的條件語句。這里有五個小技巧,可以讓你寫出更干凈、漂亮的條件語句。需要的朋友跟隨小編一起學(xué)習(xí)吧2018-10-10
JavaScript實現(xiàn)動態(tài)創(chuàng)建CSS樣式規(guī)則方案
這篇文章主要介紹了JavaScript實現(xiàn)動態(tài)創(chuàng)建CSS樣式規(guī)則方案,本文包含獲取樣式表、創(chuàng)建樣式表、插入規(guī)則、添加規(guī)則等內(nèi)容,需要的朋友可以參考下2014-09-09
使用JavaScript的ActiveXObject對象檢測應(yīng)用程序是否安裝的方法
這篇文章主要介紹了使用JavaScript的ActiveXObject對象檢測應(yīng)用程序是否安裝的方法,需要的朋友可以參考下2014-04-04

