動態排序長條圖
相關選項
長條圖競賽是一種顯示資料排名隨時間變化的圖表,ECharts 5 開始預設支援。
長條圖競賽通常使用水平長條。如果您想使用垂直長條,只需將本教學中的 X 軸和 Y 軸對調即可。
- 將長條圖系列的
realtimeSort
設定為true
以啟用長條圖競賽。 - 將
yAxis.inverse
設定為true
以將較長的長條顯示在頂部。 - 建議將
yAxis.animationDuration
設定為300
,以便首次進行長條重新排序動畫。 - 建議將
yAxis.animationDurationUpdate
設定為300
,以便後續進行長條重新排序動畫。 - 將
yAxis.max
設定為 n - 1,其中 n 是要顯示的長條數量;否則,將顯示所有長條。 - 建議將
xAxis.max
設定為'dataMax'
,以便使用資料的最大值作為 X 軸最大值。 - 如果需要即時變更標籤,請將
series.label.valueAnimation
設定為true
。 - 將
animationDuration
設定為0
,以便第一個動畫不會從 0 開始;如果您希望其他方式,請將其設定為與animationDurationUpdate
相同的值。 - 建議將
animationDurationUpdate
設定為3000
作為動畫更新持續時間,這應該與呼叫setOption
的頻率相同。 - 以
animationDurationUpdate
的頻率使用setInterval
呼叫setOption
來更新下一時間的資料。
範例
完整的範例
var data = []; for (let i = 0; i < 5; ++i) { data.push(Math.round(Math.random() * 200)); } option = { xAxis: { max: 'dataMax' }, yAxis: { type: 'category', data: ['A', 'B', 'C', 'D', 'E'], inverse: true, animationDuration: 300, animationDurationUpdate: 300, max: 2 // only the largest 3 bars will be displayed }, series: [ { realtimeSort: true, name: 'X', type: 'bar', data: data, label: { show: true, position: 'right', valueAnimation: true } } ], legend: { show: true }, animationDuration: 0, animationDurationUpdate: 3000, animationEasing: 'linear', animationEasingUpdate: 'linear' }; function run() { var data = option.series[0].data; for (var i = 0; i < data.length; ++i) { if (Math.random() > 0.9) { data[i] += Math.round(Math.random() * 2000); } else { data[i] += Math.round(Math.random() * 200); } } myChart.setOption(option); } setTimeout(function() { run(); }, 0); setInterval(function() { run(); }, 3000);
即時