chart.js-學習1

<!doctype html>
<html>
<head>
    <title>Line Chart - Combo Time Scale</title>
    <script src="../../../dist/Chart.js"></script>
    <script src="../../utils.js"></script>
    <script src="../../data.js"></script>
    <style>
        canvas {
            -moz-user-select: none;
            -webkit-user-select: none;
            -ms-user-select: none;
        }
    </style>
</head>
<body>
    <div style="width:75%;">
        <canvas id="canvas"></canvas>
    </div>
    <br>
    <br>
    <form id = "form" name = "form1">
        <br>
        <p>StartTime:<input type = "date" name = "begin_time" id = "begin_time" autofocus>EndTime:<input type = "date" id = "end_time" name = "end_time"></p>           
        <br>
        <input type = "radio" name = 'user' value = 'total_user' checked>Total User
        <input type = "radio" name = 'user' value = 'increase_user'>Increase User
    </form>
    <button id = "update">update</button>
    <script>
        function get_input(){//獲取頁面輸入參數,根據該參數獲取database的數據
            var StartTime = document.getElementById("begin_time").value;
            var EndTime = document.getElementById("end_time").value;
            var s = send_input(StartTime,EndTime)
            //alert(s);
        }

        var color = Chart.helpers.color;
        var config = {
            type: 'bar',
            data: {
                labels: get_x_axis(),
                datasets: [{
                    type: 'line',
                    label: 'Dataset 1',
                    backgroundColor: color(window.chartColors.green).alpha(0.5).rgbString(),
                    borderColor: window.chartColors.green,
                    fill: false,
                    data: get_y_axis(),
                },
                {type: 'bar',
                    label: 'Dataset 2',
                    backgroundColor: color(window.chartColors.red).alpha(0.5).rgbString(),
                    borderColor: window.chartColors.red,
                    fill: true,
                    data: get_y_axis(),
                },]
            }
        };
        window.onload = function() {
            var ctx = document.getElementById("canvas").getContext("2d");
            window.mychart = new Chart(ctx, config);
        };
        document.getElementById("update").addEventListener("click",function(){
            if (config.data.datasets.length > 0){
                
                config.data.labels = config.data.labels.concat(add_x()) //concat方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本,所以要對數組重新賦值
            }
            config.data.datasets.forEach(function(dataset){
                dataset.data=dataset.data.concat(add_data())
                
            })
            
            window.mychart.update();
        })
    </script>
</body>
</html>

add_x()返回的是一個數組,之前用push方法,結果顯示出來在一個橫軸點上;
改用concat()方法之后,就可以正常的在橫軸上添加新的值了。但是這里要注意:
concat方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本。
所以這里要用:

config.data.labels = config.data.labels.concat(add_x()) 
config.data.labels.concat(add_x())   //這樣的不正確,config.data.labels相當于沒有變化

dataset.data=dataset.data.concat(add_data())
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 由于最近都在freecodecamp上刷代碼,運用了很多JavaScript數組的方法,因此做了一份關于JavaS...
    2bc5f46e925b閱讀 1,999評論 0 16
  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,268評論 0 4
  • 來源:NumPy Tutorial - TutorialsPoint 譯者:飛龍 協議:CC BY-NC-SA 4...
    布客飛龍閱讀 32,974評論 6 98
  • 朋友正在婚姻中拖著,拖磨著彼此的愛拖磨著不捨,誰都不願當感情最後的劊子手,但其實彼此都明白,那些曾經的美好,是誰也...
    螢夜虎閱讀 150評論 0 0
  • 外婆,對我來說像母親,出生沒多久的我是在外公外婆家長大的,80年代好多孩子都是老人家帶大的吧。童年的記憶已然模糊不...
    愛思考的螢火蟲閱讀 429評論 0 0