数据可视化利用Chart.js图表工具简单案例展示

数据可视化

  • Chart
  • Echart
    • 使用HTML+js绘制图表
  • Restful
    • 网站接口
    • Json 是在web服务直接传到的一种数据类型,类似python的字典
  • Ajax 局部提交,只是提交一部分网页,数据通过js返回

使用Chart.js和jquery.js
数据提供:

import random
import time
import json

now = time.strftime("%H:%M:%S",time.localtime())

num = random.randint(1,10)

result = {"now":now,"num":num}

json_result = json.dumps(result)  # 字典转换为json数据

print("content-type:application/json")  # 返回响应的头部,具体描述的要返回的内容类型,在cgi当中用print进行返回
print("\n")  # 返回头部结束
print(json_result)  # 返回响应的body

html可视化文档:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>数据可视化</title>
        <style type="text/css">
            button{
                margin-left: 150px;

            }
        </style>
        <script src="js/jquery-3.1.1.min.js"></script>  <!--导入jQuery文件-->
        <script src="js/Chart.min.js"></script>  <!--导入chart可视化文件-->
    </head>

    <body>
        <canvas id="panel" height="330px" width="500px"> <!--画布布局-->

        </canvas>
        <div>
            <button id="btdn1">开始</button>
            <button id="btdn2">暂停</button>
        </div>
        <script>
            $(
                function () {
                    var can = $("#panel").get(0).getContext("2d");//设置为2d画布
                    var canData = {
                        labels:["a","b","c","d","e","f"],//x轴的坐标
                        datasets:[
                            {
                                fillColor:"rgba(255,0,255,0.2)",//线条下的填充色
                                strokeColor:"rgba(0,255,0,1)",//线条颜色
                                data:[1,2,3,1,2,5] //y轴对应x轴的数据

                            }

                        ]
                    };
                    var line = new Chart(can).Line(canData);
                    $("#btdn1").click(
                        function () {
                            Inter=setInterval(
                                function () {
                                    $.ajax( //局部提交,只是提交一部分网页,数据通过js返回
                                        {
                                            type:"get",//ajax请求的类型
                                            url:"/cgi-bin/data.py",//ajax请求的地址,动态获取数据,数据由/cgi-bin/data.py提供
                                            data:"",//请求需要携带的数据
                                            success:function (data) {
                                                line.addData(
                                                    [data["num"]],
                                                    data["now"]
                                                );
                                                var len = line.datasets[0].points.length;//获取点个数
                                                if(len > 8){
                                                    line.removeData()
                                                }
                                            },//回调函数,如果请求成功,ajax自动调用当前函数,将返回结果传递给data
                                            error:function (error) {
                                                console.log(error)
                                            }//回调函数,如果请求失败,ajax自动调用当前函数,将返回错误传递给error
                                        }
                                    )//使用ajax
                                },1000
                            )

                    $("#btdn2").click(
                        function () {
                            clearInterval(Inter);
                        }
                    )
                        }
                    )

                }
            )

        </script>

    </body>
</html>

效果:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孜孜孜孜不倦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值