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ù)時(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 過(guò)多,一行顯示個(gè)數(shù)控制
if(this.lincData.length>0){
this.lincData.forEach((el,index) => {
let data= Object.values(el)
let name = data.shift()
//一行顯示個(gè)數(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)容因?yàn)檫^(guò)多顯示不全
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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript中誤用/g導(dǎo)致的正則test()無(wú)法正確重復(fù)執(zhí)行的解決方案
這篇文章主要介紹了JavaScript中誤用/g導(dǎo)致的正則test()無(wú)法正確重復(fù)執(zhí)行的解決方案的相關(guān)資料,需要的朋友可以參考下2016-07-07
ES6中的Javascript解構(gòu)的實(shí)現(xiàn)
這篇文章主要介紹了ES6中的Javascript解構(gòu)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
JS實(shí)現(xiàn)圖文并茂的tab選項(xiàng)卡效果示例【附demo源碼下載】
這篇文章主要介紹了JS實(shí)現(xiàn)圖文并茂的tab選項(xiàng)卡效果,涉及javascript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)修改頁(yè)面元素屬性的相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-09-09
JavaScript利用時(shí)間分片實(shí)現(xiàn)高性能渲染數(shù)據(jù)詳解
為了豐富我們的知識(shí)體系,我們有必要了解并清楚當(dāng)遇到大量數(shù)據(jù)時(shí),如何才能在不卡主頁(yè)面的情況下渲染數(shù)據(jù),以及其中背后的原理,本文介紹了如何使用時(shí)間分片的方式來(lái)渲染大量數(shù)據(jù),感興趣的可以了解下2023-05-05
分享5個(gè)小技巧讓你寫出更好的 JavaScript 條件語(yǔ)句
在使用 JavaScript 時(shí),我們常常要寫不少的條件語(yǔ)句。這里有五個(gè)小技巧,可以讓你寫出更干凈、漂亮的條件語(yǔ)句。需要的朋友跟隨小編一起學(xué)習(xí)吧2018-10-10
JavaScript實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建CSS樣式規(guī)則方案
這篇文章主要介紹了JavaScript實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建CSS樣式規(guī)則方案,本文包含獲取樣式表、創(chuàng)建樣式表、插入規(guī)則、添加規(guī)則等內(nèi)容,需要的朋友可以參考下2014-09-09
JavaScript仿小米實(shí)現(xiàn)球體分解動(dòng)畫
用過(guò)小米手機(jī)的應(yīng)該見(jiàn)過(guò)它的垃圾清理ui界面吧,本文將利用JavaScript模擬這一界面實(shí)現(xiàn)球體分解動(dòng)畫,感興趣的小伙伴可以學(xué)習(xí)一下2022-06-06
使用JavaScript的ActiveXObject對(duì)象檢測(cè)應(yīng)用程序是否安裝的方法
這篇文章主要介紹了使用JavaScript的ActiveXObject對(duì)象檢測(cè)應(yīng)用程序是否安裝的方法,需要的朋友可以參考下2014-04-04

