• 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哦

  • 相关阅读:
    phaser3入门教程-从零开始开发一个打砖块游戏
    Python操作PDF-文本和图片提取(使用PyPDF2和PyMuPDF)
    从零开始手把手教你使用javascript+canvas开发一个塔防游戏01地图创建
    Python实现超级玛丽游戏系列教程02玛丽走跑
    Python实现超级玛丽游戏系列教程01玛丽登场
    通过游戏学javascript系列第一节Canvas游戏开发基础
    mvc模式jsp+servel+dbutils oracle基本增删改查demo
    mvc模式jsp+servel+jdbc oracle基本增删改查demo
    N个任务掌握java系列之统计一篇文章中单词出现的次数
    mysq数据库管理工具navicat基本使用方法
  • 原文地址:https://www.cnblogs.com/wangruifang/p/7517688.html
Copyright © 2020-2023  润新知