動態排序長條圖

長條圖競賽是一種顯示資料排名隨時間變化的圖表,ECharts 5 開始預設支援。

長條圖競賽通常使用水平長條。如果您想使用垂直長條,只需將本教學中的 X 軸和 Y 軸對調即可。

  1. 將長條圖系列的 realtimeSort 設定為 true 以啟用長條圖競賽。
  2. yAxis.inverse 設定為 true 以將較長的長條顯示在頂部。
  3. 建議將 yAxis.animationDuration 設定為 300,以便首次進行長條重新排序動畫。
  4. 建議將 yAxis.animationDurationUpdate 設定為 300,以便後續進行長條重新排序動畫。
  5. yAxis.max 設定為 n - 1,其中 n 是要顯示的長條數量;否則,將顯示所有長條。
  6. 建議將 xAxis.max 設定為 'dataMax',以便使用資料的最大值作為 X 軸最大值。
  7. 如果需要即時變更標籤,請將 series.label.valueAnimation 設定為 true
  8. animationDuration 設定為 0,以便第一個動畫不會從 0 開始;如果您希望其他方式,請將其設定為與 animationDurationUpdate 相同的值。
  9. 建議將 animationDurationUpdate 設定為 3000 作為動畫更新持續時間,這應該與呼叫 setOption 的頻率相同。
  10. 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);
即時

貢獻者 在 GitHub 上編輯此頁面

Ovilia Oviliapissang pissangShofol Shofol