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哦

原文地址:https://www.cnblogs.com/wangruifang/p/7517688.html