愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • Report

  • Script

  • EChart

    • ECharts使用說明

      • ECharts特性
      • ECharts安裝
      • ECharts配置語法
      • 在FastWeb中引入ECharts
      • ECharts基礎概念概覽
      • 個性化圖表的樣式
      • ECharts中的樣式簡介
      • 非同步數據載入和更新
      • 使用dataset管理數據
      • 使用transform進行數據轉換
      • 在圖表中加入互動元件
      • 移動端自適應
      • 數據的視覺對映
      • ECharts中的事件和性為
      • 動態排序柱狀圖
      • 小例子自己實現拖拽
      • 小例子實現日曆圖
      • 旭日圖
      • 自定義系列
      • 富文字標籤
    • ECharts屬性說明

  • Chart

  • DB Install

  • HiDesk

  • HiNAT

  • ReportBuilder

動態排序柱狀圖

# 動態排序柱狀圖

  動態排序柱狀圖是一種展示隨時間變化的數據排名變化的圖表,從 ECharts 5 開始內建支援。

動態排序柱狀圖通常是橫向的柱條,如果想要採用縱向的柱條,只要把本教程中的 X 軸和 Y 軸相反設定即可。

  1. yAxis.realtimeSort 設為 true,表示開啟 Y 軸的動態排序效果
  2. yAxis.inverse 設為 true,表示 Y 軸從下往上是從小到大的排列
  3. yAxis.animationDuration 建議設為 300,表示第一次柱條排序動畫的時長
  4. yAxis.animationDurationUpdate 建議設為 300,表示第一次後柱條排序動畫的時長
  5. 如果想只顯示前 n 名,將 yAxis.max 設為 n - 1,否則顯示所有柱條
  6. xAxis.max 建議設為 'dataMax' 表示用數據的最大值作為 X 軸最大值,視覺效果更好
  7. 如果想要實時改變標籤,需要將 series.label.valueAnimation 設為 true
  8. animationDuration 設為 0,表示第一份數據不需要從 0 開始動畫(如果希望從 0 開始則設為和 animationDurationUpdate 相同的值)
  9. animationDurationUpdate 建議設為 3000 表示每次更新動畫時長,這一數值應與呼叫 setOption 改變數據的頻率相同
  10. 以 animationDurationUpdate 的頻率呼叫 setInterval,更新數據值,顯示下一個時間點對應的柱條排序

  完整的例子如下:

  • FastWeb TUgURLFrame示例:

  如需在FastWeb中的TUgURLFrame中實現上述效果,則修改其HTML屬性,使用下列內容:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/5.1.2/echarts.min.js"></script>
</head>
<body>
    <!-- 為ECharts準備一個具備大小(寬高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基於準備好的dom,初始化echarts實體
        var myChart = echarts.init(document.getElementById('main'));
        var option;

        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);
        
        // 使用剛指定的配置項和數據顯示圖表。
        myChart.setOption(option);
    </script>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
  • 圖表來源:https://echarts.apache.org/examples/zh/editor.html?c=bar-race (opens new window)

以上的設定項比較多,如果手動設定比較繁瑣,之後ECharts官方將推出不用寫程式碼就能實現動態排序柱狀圖的工具,敬請期待!

ECharts中的事件和性為
小例子自己實現拖拽

← ECharts中的事件和性為 小例子自己實現拖拽→

Copyright © 2021-2025 愛招飛IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式