• canvas绘制随机颜色的柱形图


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            body{
                text-align: center;
            }
            canvas{
                background: #ddd;
            }
        </style>
    </head>
    <body>
    <canvas id="canvas" width="800" height="700"></canvas>
    <script src="jquery-3.2.1.js"></script>
    <script>
    //获取画笔工具
    //创建变量保存画布宽度高度边界距离
    //绘制统计图的轮廓
    //发送ajax请求数据
    //返回数据,动态绘制图形
    
        var elem = document.getElementById("canvas");
        var canvas = elem.getContext("2d");
            var w= 800,//画布宽度
                    h = 700,//画布高度
                    pd = 50 ;//统计图的内容到画布边界的距离
            canvas.strokeRect(pd,pd,w-2*pd,h-2*pd);
             $.ajax({
                    type:"GET",    
                    url:"saledata.php",
                    success:function(data){
                        console.log("成功接收数据");
                        console.log(data);
                        //数据个数
                        //每个柱子/间距宽度
                        var count = data.length;
                        var barWidth = (w-2*pd)/(2*count+1);
                        for(var i = 0;i<count;i++){
                            var d = data[i];//第i月份的数量
                            //柱子的宽度
                            var bw = barWidth;
                            //柱子的高度
                            var bh = d.value;
                            //柱子的x
                            var bx = pd +(2*i+1)*barWidth;
                            //柱子的y
                            var by = h-pd-bh;
                            //绘制矩形
                            //canvas.strokeRect(bx,by,bw,bh);
                            canvas.fillStyle = rColor();
                            canvas.fillRect(bx,by,bw,bh); 
                        }
                    },
                    error:function(){
                        alert("网络出现故障,请检查!");
                    }
             });
             function rColor(){
                var r = Math.floor(Math.random()*256);
                var g = Math.floor(Math.random()*256);
                var b = Math.floor(Math.random()*256);
                return `rgb(${r},${g},${b})`;
             }
    </script>
    </body>
    </html>
    <?php
        header("Content-Type:application/json;charset=utf-8");
        $rows = [];
        /*
        $rows=[
                ["月份"=>"一月","value"=>280],
                ["月份"=>"二月","value"=>270],
                ["月份"=>"三月","value"=>380],
                ["月份"=>"四月","value"=>280],
                ["月份"=>"五月","value"=>280],
                ["月份"=>"六月","value"=>210],
                ["月份"=>"七月","value"=>180],
                ["月份"=>"八月","value"=>280],
                ["月份"=>"九月","value"=>200],
                ["月份"=>"十月","value"=>280],
                ["月份"=>"十一月","value"=>300],
                ["月份"=>"十二月","value"=>300]
        ];
        */
        $rows[]=["月份"=>"1月","value"=>160];
        $rows[]=["月份"=>"2月","value"=>290];
        $rows[]=["月份"=>"3月","value"=>220];
        $rows[]=["月份"=>"4月","value"=>100];
        $rows[]=["月份"=>"5月","value"=>190];
        $rows[]=["月份"=>"6月","value"=>170];
        $rows[]=["月份"=>"7月","value"=>270];
        $rows[]=["月份"=>"8月","value"=>120];
        $rows[]=["月份"=>"9月","value"=>250];
        $rows[]=["月份"=>"10月","value"=>240];
        $rows[]=["月份"=>"11月","value"=>230];
        $rows[]=["月份"=>"12月","value"=>210];
    
        echo json_encode($rows);
    ?>

     ***********记得添加jquery-3.2.1.js哦

  • 相关阅读:
    dockerk个人学习(0)
    ubuntu编译python源码的坑
    查找大目录
    ubuntu 远程gui显示
    paramiko模块
    python open和file的区别
    python type metaclass
    python 生成器 迭代器 yiled
    博客暂停更新,请移步新主页
    win10禁用自动更新服务
  • 原文地址:https://www.cnblogs.com/wangruifang/p/7517688.html
Copyright © 2020-2023  润新知