Chart.js範例:設備開關-日曲線

Chart.js範例:設備開關-日曲線




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- jquery -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <!-- monent.js -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/javascript.util/0.12.12/javascript.util.min.js"></script>
    <!-- chart.js -->
    <script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
    <title>人孔啟閉狀態報表</title>
</head>

<body>
    <div style="width:100%;">
        <canvas id="myChart" width="1200" height="400"></canvas>
    </div>

    <script>
        var ctx = document.getElementById('myChart').getContext('2d');
        var myChart = new Chart(ctx, {
            type: 'line',
            data: {
                datasets: [{
                    label: '啟閉狀態',
                    steppedLine: true,
                    xAxisID: 'first-x-axis'// 繪製此數據集的x軸的ID。
                    yAxisID: 'first-y-axis'// 繪製此數據集的y軸的ID。
                    // data: data,
                    data: [{
                        x: new Date('2020/09/01 00:00:00'),
                        y: "開"
                    }, {
                        x: new Date('2020/09/01 08:00:00'),
                        y: "關"
                    }, {
                        x: new Date('2020/09/01 16:30:00'),
                        y: "開"
                    }, {
                        x: new Date('2020/09/01 18:00:00'),
                        y: "關"
                    }]
                }],
            },
            options: {
                scales: {
                    xAxes: [
                        {
                            type: 'time'// 使用的類型
                            id: 'first-x-axis'// 該ID用於將數據集和比例軸鏈接在一起。
                            distribution: 'linear'// 數據繪製類型。:'linear', 'series'
                            bounds: 'data'// 確定比例尺範圍。:'data', 'ticks'
                            labels: [ // 要顯示的標籤數組
                                new Date('2020/09/01 00:00:00').getTime(),
                                new Date('2020/09/01 23:59:59').getTime()
                            ],
                            scaleLabel: { // 比例標題配置。
                                display: true// 如果為true,則顯示軸標題。
                                labelString: '小時'// 標題文字。 (即“人數”或“響應選項”)。

                            },
                            ticks: { // 刻度線配置。
                                display: true// 如果為true,則顯示刻度標籤。
                                // autoSkip: false,
                                // sampleSize: 100, // 在決定適合多少標籤時要檢查的刻度數。設置較小的值會更快,但當標籤長度變化較大時,精度可能會降低。
                                source: 'auto'// 刻度線產生的來源。:'auto', 'data', 'labels'
                            },
                            time: {
                                min: new Date('2020/09/01 00:00:00').getTime(), // 用戶定義的刻度最小值,將覆蓋數據中的最小值。
                                max: new Date('2020/09/01 23:59:59').getTime(), // 用戶定義的刻度最大值,將覆蓋數據中的最大值。
                                displayFormats: { // 設置如何顯示不同的時間單位。
                                    hour: 'HH'// 小時格式
                                },
                                tooltipFormat: 'HH:mm:ss'// 用於工具提示的Moment.js格式字符串。
                                unit: 'hour'// 單位
                                stepSize: 1// 網格線之間的單位數。
                                minUnit: 'hour'// 時間單位要使用的最小顯示格式
                                // parser: 'HH:mm:ss', // 日期的自定義解析器
                            }
                        }
                    ],
                    yAxes: [
                        {
                            type: 'category',
                            id: 'first-y-axis'// 該ID用於將數據集和比例軸鏈接在一起。
                            labels: ["開""關"], // 要顯示的標籤數組。
                            

                        }
                    ]
                }
            }
        });
    </script>

</body>

</html>

留言

這個網誌中的熱門文章

如何使用python校時

什麼是NTP ??