动态排序条形图
相关配置项
条形图竞速是一种显示数据排名随时间变化的图表,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 开始;如果希望从 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);
在线演示