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阅读 2,049评论 0 16
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,275评论 0 4
  • 来源:NumPy Tutorial - TutorialsPoint 译者:飞龙 协议:CC BY-NC-SA 4...
    布客飞龙阅读 33,148评论 6 98
  • 朋友正在婚姻中拖著,拖磨著彼此的愛拖磨著不捨,誰都不願當感情最後的劊子手,但其實彼此都明白,那些曾經的美好,是誰也...
    螢夜虎阅读 160评论 0 0
  • 外婆,对我来说像母亲,出生没多久的我是在外公外婆家长大的,80年代好多孩子都是老人家带大的吧。童年的记忆已然模糊不...
    爱思考的萤火虫阅读 443评论 0 0