如何標(biāo)注ECharts折線圖

2018-10-18 09:55 更新

對于 ECharts 折線圖標(biāo)注的設(shè)置我們可以從這幾個方面入手:首先設(shè)置折線圖標(biāo)注的圖形;然后控制該標(biāo)注的大小、旋轉(zhuǎn)角度等;接著就可以設(shè)置折線圖標(biāo)注的樣式、文本了(可以通過 normal 和 emphasis 兩種狀態(tài)進(jìn)行設(shè)置);最后,您可以設(shè)置標(biāo)注動畫,如動畫的閾值、時長、初始動畫的緩動效果等等。這只是本節(jié)內(nèi)容的一個概述,詳細(xì)的操作過程還得查閱文章內(nèi)容。

  • series[i]-line.markPoint Object

    設(shè)置 ECharts 折線圖標(biāo)注。

  • series[i]-line.markPoint.symbol string[ default: 'pin' ]

    折線圖標(biāo)注的圖形設(shè)置。

    ECharts 提供的標(biāo)記類型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'

    也可以通過 'image://url' 設(shè)置為圖片,其中 url 為圖片的鏈接,或者 dataURI。

    可以通過 'path://' 將圖標(biāo)設(shè)置為任意的矢量路徑。這種方式相比于使用圖片的方式,不用擔(dān)心因為縮放而產(chǎn)生鋸齒或模糊,而且可以設(shè)置為任意顏色。路徑圖形會自適應(yīng)調(diào)整為合適的大小。路徑的格式參見 SVG PathData。可以從 Adobe Illustrator 等工具編輯導(dǎo)出。

  • series[i]-line.markPoint.symbolSize number, Array, Function[ default: 50 ]

    折線圖標(biāo)注的大小,可以設(shè)置成諸如 10 這樣單一的數(shù)字,也可以用數(shù)組分開表示寬和高,例如 [20, 10] 表示標(biāo)記寬為20,高為10。

    如果需要每個數(shù)據(jù)的圖形大小不一樣,可以設(shè)置為如下格式的回調(diào)函數(shù):

    (value: Array|number, params: Object) => number|Array

    其中第一個參數(shù) value 為 data 中的數(shù)據(jù)值。第二個參數(shù)params 是其它的數(shù)據(jù)項參數(shù)。

  • series[i]-line.markPoint.symbolRotate number

    折線圖標(biāo)注的旋轉(zhuǎn)角度。

    注意:在 markLine 中當(dāng) symbol 為 'arrow' 時會忽略 symbolRotate 強(qiáng)制設(shè)置為切線的角度。
  • series[i]-line.markPoint.symbolOffset Array[ default: [0, 0] ]

    折線圖標(biāo)注相對于原本位置的偏移。默認(rèn)情況下,標(biāo)記會居中置放在數(shù)據(jù)對應(yīng)的位置,但是如果 symbol 是自定義的矢量路徑或者圖片,就有可能不希望 symbol 居中。這時候可以使用該配置項配置 symbol 相對于原本居中的偏移,可以是絕對的像素值,也可以是相對的百分比。

    例如 [0, '50%'] 就是把自己向上移動了一半的位置,在 symbol 圖形是氣泡的時候可以讓圖形下端的箭頭對準(zhǔn)數(shù)據(jù)點。

  • series[i]-line.markPoint.silent boolean[ default: false ]

    折線圖標(biāo)注是否不響應(yīng)和觸發(fā)鼠標(biāo)事件,默認(rèn)為 false,即響應(yīng)和觸發(fā)鼠標(biāo)事件。

  • series[i]-line.markPoint.label Object

    折線圖標(biāo)注的文本。

  • series[i]-line.markPoint.itemStyle Object

    折線圖標(biāo)注的樣式。

  • series[i]-line.markPoint.data[i] Object

    折線圖標(biāo)注的數(shù)據(jù)數(shù)組。每個數(shù)組項是一個對象,有下面幾種方式指定標(biāo)注的位置。

    1. 通過 x, y 屬性指定相對容器的屏幕坐標(biāo),單位像素,支持百分比。
    2. 用 coord 屬性指定數(shù)據(jù)在相應(yīng)坐標(biāo)系上的坐標(biāo)位置,單個維度支持設(shè)置 'min', 'max', 'average'。
    3. 直接用 type 屬性標(biāo)注系列中的最大值,最小值。這時候可以使用 valueIndex 指定是在哪個維度上的最大值、最小值、平均值。或者可以使用 valueDim 指定在哪個維度上的最大值、最小值、平均值。

    當(dāng)多個屬性同時存在時,優(yōu)先級按上述的順序。

    示例:

    data: [
        {
            name: '最大值',
            type: 'max'
        }, 
        {
            name: '某個坐標(biāo)',
            coord: [10, 20]
        }, {
            name: '固定 x 像素位置',
            yAxis: 10,
            x: '90%'
        }, 
        {
            name: '某個屏幕坐標(biāo)',
            x: 100,
            y: 100
        }
    ]
  • series[i]-line.markPoint.animation boolean[ default: true ]

    是否在折線圖標(biāo)注中開啟動畫。

  • series[i]-line.markPoint.animationThreshold number[ default: 2000 ]

    是否開啟折線圖標(biāo)注動畫的閾值,當(dāng)單個系列顯示的圖形數(shù)量大于這個閾值時會關(guān)閉動畫。

  • series[i]-line.markPoint.animationDuration number[ default: 1000 ]

    折線圖標(biāo)注初始動畫的時長,支持回調(diào)函數(shù),可以通過每個數(shù)據(jù)返回不同的 delay 時間實現(xiàn)更戲劇的初始動畫效果:

    animationDuration: function (idx) {
        // 越往后的數(shù)據(jù)延遲越大
        return idx * 100;
    }
  • series[i]-line.markPoint.animationEasing string[ default: cubicOut ]

    折線圖標(biāo)注初始動畫的緩動效果。不同的緩動效果可以參考 緩動示例

  • series[i]-line.markPoint.animationDelay number, Function[ default: 0 ]

    折線圖標(biāo)注初始動畫的延遲,支持回調(diào)函數(shù),可以通過每個數(shù)據(jù)返回不同的 delay 時間實現(xiàn)更戲劇的初始動畫效果。

    如下示例:

    animationDelay: function (idx) {
        // 越往后的數(shù)據(jù)延遲越大
        return idx * 100;
    }

    也可以看該示例

  • series[i]-line.markPoint.animationDurationUpdate number, Function[ default: 300 ]

    折線圖標(biāo)注數(shù)據(jù)更新動畫的時長。

    支持回調(diào)函數(shù),可以通過每個數(shù)據(jù)返回不同的 delay 時間實現(xiàn)更戲劇的更新動畫效果:

    animationDurationUpdate: function (idx) {
        // 越往后的數(shù)據(jù)延遲越大
        return idx * 100;
    }
  • series[i]-line.markPoint.animationEasingUpdate string[ default: cubicOut ]

    折線圖標(biāo)注數(shù)據(jù)更新動畫的緩動效果。

  • series[i]-line.markPoint.animationDelayUpdate number, Function[ default: 0 ]

    折線圖標(biāo)注數(shù)據(jù)更新動畫的延遲,支持回調(diào)函數(shù),可以通過每個數(shù)據(jù)返回不同的 delay 時間實現(xiàn)更戲劇的更新動畫效果。

    如下示例:

    animationDelayUpdate: function (idx) {
        // 越往后的數(shù)據(jù)延遲越大
        return idx * 100;
    }

    也可以看該示例

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號