echarts之随机方块

一、效果图
这里写图片描述

二、代码
本例是echatrs中的热力图实现的。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>随机方块</title>
        <style>
            #echart {
                width: 600px;
                height: 300px;
            }

        </style>
    </head>
    <body>
        <div id="echart"></div>
        <script type="text/javascript" src="js/jquery-3.2.1.js" ></script>
        <script type="text/javascript" src="js/echarts.min.js" ></script>
        <script type="text/javascript">

            $(function(){

                var columns = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19];
                var rows    = [0,1,2,3,4];
                var datas = {
                    score:100,
                    status:[{
                        type:'1',
                        num:5
                    },{
                        type:'2',
                        num:10
                    }]
                };

                var randomIndex100 = randomArr(100);

                var data = [];
                for(var i=0;i<20;i++){
                    for(var j=0;j<5;j++){
                        data.push([i,j,3]);
                    }
                }

                for(var m=0;m<datas.status.length;m++){
                    for(var n = 0;n<datas.status[m].num;n++){
                        data[randomIndex100.splice(0,1)[0]][2] = datas.status[m].type;
                    }
                }

                var types = {
                    '_0':'#93C62D',
                    '_1':'#F28172',//故障
                    '_2':'#FFB339',//警告
                    '_3':'#93C62D'//正常
                };

                data = data.map(function (item) {

                    return {
                        name:'',
                        value:item,
                        itemStyle:{
                            normal:{
                                color:types['_'+item[2]]
                            }
                        }
                    }

                });

                option = {
                    tooltip: {
                        position: 'top'
                    },
                    animation: false,
                    grid:{
                        width:500,
                        height: 100,
                        y: '10%'
                    },
                    xAxis:{
                       show:false,
                        type: 'category',
                        data: columns,
                        splitNumber:columns.length,
                        splitArea: {
                            show: true,
                            areaStyle:{
                                show: true
                            }
                        }
                    },
                    yAxis:{
                        show:false,
                        type: 'category',
                        data: rows,
                        splitNumber:rows.length,
                        splitArea: {
                            show: true
                        }
                    },
                    series: [{
                        name: 'Punch Card',
                        type: 'heatmap',
                        data: data,
                        label: {
                            normal: {
                                show: false
                            }
                        },
                        itemStyle: {
                            normal:{
                                color:'#93C62D',
                                borderColor:'#fff',
                                borderWidth:5
                            },
                            emphasis: {
                               // shadowBlur: 10,
                                //shadowColor: 'rgba(0, 0, 0, 0.5)'
                            }
                        }
                    }]
                };

                initChart('echart',option);
            });


            function initChart(id,option){
                var dom = document.getElementById(id);
                var chart = echarts.init(dom);
                chart.setOption(option);
            }

            //产生指定长度的随机下标数组
            function randomArr(length){
                var arr = [],indexArr=[];
                if(typeof length == 'number'){

                    while(arr.length<length){
                        if(arr.length==0){
                            arr.push(0);
                        }else{
                            arr.push(arr[arr.length-1]+1);
                        }
                    }
                    while(arr.length>0){
                        indexArr.push(arr.splice(random(0,arr.length-1),1)[0])
                    }

                }
                return indexArr;
            }

            //获取指定两数之间的随机数
            function random(startNum,endNum){
                return startNum+Math.round(Math.random()*(endNum-startNum));
            }
        </script>
    </body>
</html>

应该直接用js写的啊。。。。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wl_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值