在工作中利用echarts繪製折線圖,發現當x軸時間更新時,x軸並沒有重新整理,當時的**如下。
初始化echarts
var initoption =
, legend:
, grid:
, toolbox:}}
, xaxis:
, yaxis:
, series:
};var tablechart;
require.
config(}
);require([
'echarts'
,'echarts/chart/line'
,//需要折線圖則載入line模組
'echarts/chart/bar'
// 使用柱狀圖就載入bar模組,按需載入],
function
(echarts)
);
填充資料
var cmap = data;
var series=
;var title=cmap.title;
var days = cmap.legend;
for(
var mo in cmap.data));
}var option = tablechart.
getoption()
; option.title.text=
"***x"
; option.series=series;
option.xaxis.data=days;
option.legend.data=title;
tablechart.
setoption
(option,
true
);
問題出現以後在網上搜尋了一下,有說呼叫 setoption(option,true)萬能介面的,有說呼叫destory(),clear().clean()等介面的 ,經過測試都不行,還有一些比較複雜的方式,沒有去具體測試,不知道是否可以。
具體原因是xaxis在初始化的時候賦值為乙個陣列,而重新整理資料的時候只是重新整理xaxis的data部分,這個時候xaxis陣列結構已經被破壞 ,存在兩個data,因此在重新整理的時候找不到要重新整理的資料,導致重新整理失敗。
第一次初始化賦值
option.xaxis:
第二次重新整理資料
option.xaxis:[0:,data:array(5)]
根據option.xaxis.data無法找到對應的data資料。
採用的笨辦法
if (option.xaxis.length ==undefined)else
可以順利解決問題。
fragment切換時,重新整理資料
一般,我們做專案,底部的4個fragment切換時,最好可以重新整理資料 做fragment顯影藏時,最好用hide,show 這時會有乙個方法onhiddenchanged 在這裡面我們可以重新整理資料 還可以做這個操作 點當前tab,也重新整理介面 override public void on...
echarts動態載入資料時改變legend的值
如下,非常簡單,只需清空畫布即可。網上有一種對option的legend重新賦值的方法,我在本地環境jquery echarts 4.x的環境下除錯時發現是無效的,但是有同事使用是有效的,暫時沒找到原因,不能認為是一種通用的解決方法。an highlighted block let chart ec...
Echarts 資料繫結
簡單的統計表已經可以生成,不過之前圖示資料都是直接寫在引數裡面的,而實際使用中,我們的資料一般都是非同步讀取的。echart.js對於資料非同步讀取這塊提供了非同步載入的方法。很多時候需要展示的資料不單單是一組資料,很多時候會進行乙個資料對比。這個時候只需要在series中增加一組資料,legend...