天天看點

echarts資料更新禁止圖表重新繪制

echarts的資料更新使用setOption來實作的。

官網的解釋是這樣的:

設定圖表執行個體的配置項以及資料,萬能接口,所有參數和資料的修改都可以通過 setOption 完成,ECharts 會合并新的參數和資料,然後重新整理圖表。如果開啟動畫的話,ECharts 找到兩組資料之間的差異然後通過合适的動畫去表現資料的變化。

是以我們在希望資料實時更新的時間,使用setOption即可。

但是setOption會導緻圖表及時更新。

及時更新在通常情況下是沒有問題,但是和dataZoom縮放元件一起使用的話。每次的setOption都會将以前的dataZoom進行重置。

比如,現在的dataZoom的初始位置為80-100,手動縮放到40-60,此時使用setOption的話,dataZoom會瞬間回到80-100的位置,即回到重新設定的位置。

這樣并不是我們所期望的效果,我們希望得到的是,資料的更新并不影響我本次的縮放,即setOption不會影響我目前的縮放位置。

解決方法

echarts3.0以上的setOption中有可選配置參數。

參數:

調用方式:

chart.setOption(option, notMerge, lazyUpdate);           

或者

chart.setOption(option, {
    notMerge: ...,
    lazyUpdate: ...,
    silent: ...
});           
- option           

圖表的配置項和資料,具體見配置項手冊。

- notMerge           

可選,是否不跟之前設定的 option 進行合并,預設為 false,即合并。

- lazyUpdate           

可選,在設定完 option 後是否不立即更新圖表,預設為 false,即立即更新。

- silent           

可選,阻止調用 setOption 時抛出事件,預設為 false,即抛出事件。

其中的lazyUpdate參數就是我們的所需要的

++可選,在設定完 option 後是否不立即更新圖表,預設為 false,即立即更新。++

完整的配置參數

chart.setOption(option, {
    false,
    true,
    false
});