echarts中X軸顯示特定個數(shù)label并修改樣式的方法詳解
前言
在使用echarts繪圖時可能遇到一些特別的需求,如,當(dāng)x周表示日期且數(shù)據(jù)較多(如三個月,按天統(tǒng)計),此時如果按照echarts的默認配置,則會根據(jù)空間剩余的大小自動計算最終顯示有限的幾個不重疊的label
需求: 必須顯示起始日期和終止日期
echarts默認屬性會導(dǎo)致如果重疊,最大值和最小值會被隱藏,首先要實現(xiàn)不讓最大值和最小值隱藏,這很簡單
xAxis: { axisLabel: { showMinLabel: true, showMaxLabel: true } }
需求: 由于畫布限制,只讓顯示起始和終止日期,或者再加上中間日期
此時如果只設(shè)置上面的兩個屬性,中間的刻度仍然會根據(jù)echarts的算法去繪制,依然是按照剩余空間來顯示,不一定會符合要求,即便只顯示了一個值,可能也不是我們預(yù)期的那一個,那么還有一個屬性
xAxis: { axisLabel: { showMinLabel: true, showMaxLabel: true, interval: Math.ceil(data.length / 2) } }
interval 屬性表示間隔多少項展示一個刻度,在這里我們直接取一半,這樣其他的刻度就會被隱藏掉
這是種比較簡單的實現(xiàn)方法,當(dāng)然也可以直接對label進行格式化
xAxis: { data: data, axisLabel: { formatter (val, i) { if (i === 0 || i === data.length - 1 || i === Math.ceil(data.length / 2)) { return val } return '' } } }
這種寫法,我們將只留下需要的刻度,其余都賦值為'',一樣可以實現(xiàn)需求,同時也可以對最終值進行格式化
如moment(val).format('YYYY-MM-DD')等
需求: 將起始和終止刻度限定在軸線范圍內(nèi),不允許現(xiàn)實超過軸線
這時候單純的靠屬性已經(jīng)沒辦法滿足需求,因為很明顯左右都需要調(diào)整,同時一個是左邊多了,一個是右邊多了,此時需要用到echarts的富文本模式rich
// 左右兩個位置需要調(diào)整,需要定義兩個類名 // 這里樣式可以用padding, 也可以用寬度和對齊方式來做(我用這種), const richCss = { start: { width: 145, align: 'right' }, end: { width: 145, align: 'left' } }
這樣我們就有了兩個類名, 再通過第二步的formatter函數(shù)的方法將其通過富文本的方式渲染
xAxis: { data: data, axisLabel: { formatter (val, i) { if (i === 0) { return `{start| ${val}}` } else if (i === data.length - 1) { return `{end| ${val}}` } else if (i === Math.ceil(data.length / 2)) { return val } return '' }, rich: richCss } }
這樣就實現(xiàn)了將兩端刻度限定在軸線范圍內(nèi), 達到美化的目的,當(dāng)然如果中間的刻度位置有問題也可以用相同的方法進行調(diào)整
這是本人在工作中遇到的需求,然后自己揣摩出的解決方案,如果有更好的方案歡迎留言,一起學(xué)習(xí)
總結(jié)
到此這篇關(guān)于echarts中X軸顯示特定個數(shù)label并修改樣式的文章就介紹到這了,更多相關(guān)echarts X軸顯示特定個label內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS當(dāng)前頁面登錄注冊框,固定DIV,底層陰影的實例代碼
下面小編就為大家?guī)硪黄狫S當(dāng)前頁面登錄注冊框,固定DIV,底層陰影的實例代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09JavaScript垃圾回收機制(引用計數(shù),標記清除,性能優(yōu)化)
這篇文章主要介紹了JavaScript垃圾回收機制(引用計數(shù),標記清除,性能優(yōu)化),垃圾回收是JavaScript的隱藏機制,我們通常無需為垃圾回收勞心費力,只需要專注功能的開發(fā)就好了2022-07-07js重寫alert事件(避免alert彈框標題出現(xiàn)網(wǎng)址)
這篇文章主要給大家介紹了關(guān)于js重寫alert事件的相關(guān)資料,這樣可以避免alert彈框標題出現(xiàn)網(wǎng)址的情況,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12js實現(xiàn)增加數(shù)字顯示的環(huán)形進度條效果
本文主要分享了js實現(xiàn)增加數(shù)字顯示的環(huán)形進度條效果的示例代碼。具有一定的參考價值,下面跟著小編一起來看下吧2017-02-02學(xué)習(xí)JavaScript設(shè)計模式之策略模式
這篇文章主要為大家介紹了JavaScript設(shè)計模式中的策略模式,對JavaScript設(shè)計模式感興趣的小伙伴們可以參考一下2016-01-01