Echarts热力图demo

(1)导包

导包分为本地和线上加载两种,这里采用线上自主导包。导包的主要代码如下:

<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>

<!—导入中国地图文件-->
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script>
<!—使用百度地图api-->
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=BGquqFxPX3NUlRUDdP8ShwjG7CT3aFEn"></script>
<!—导入百度地图扩展包 实现在百度地图的基础上绘制散点图、热力图和线图等-->
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/bmap.min.js"></script>

这里需要注意的是,使用百度地图api接口,必须要上百度地图官网申请个人密钥,然后填于上方的ak=你的密钥。

申请网址为:http://lbsyun.baidu.com/index.php?title=jspopular

(2)echarts的基本配置

1、echarts的初始化:

需要建立一个布局容器,一般是div,采用

var dom = document.getElementById("container");

var myChart = echarts.init(dom); //拿到echart对象。

2、为echarts配置option。

Echarts的最终使用是基于设置配置的option对象,option又区分为BaseOption和Options。BaseOption用于配置所需要呈现的多个option中的共同部分,而Options用于设置不同部分。如本demo中,采用的时间线展示有11个,而且这11个时间线的数据是不一致的,所以在BaseOption中配置这11个相同的部分后,还需要在Options中配置11种不同的数据。下面,基于代码阐述,首先,获取数据需要在异步请求中,采用

$.get(“uri”,function(data){

   //书写echarts配置代码

}); :

var option = {
    //option部分的相同配置
    baseOption: {
        title: { //显示的标题
            text: '北京市地铁口人流监控',
            left: 'center',
            textStyle: {
                color: 'black'
            }
        },
        


timeline: {//开启时间线下方的时间线
        autoPlay: true, //是否开启自动
          data: ["7:00", "8:00", "9:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00",     "16:00", "17:00"],
        axisType: 'category',
        playInterval: 2000,//跳转间隔时间
lineStyle: {color: 'white'},//线条颜色
label: { //显示上方时间点标签的样式
        normal: {
        textStyle: {
color: 'black',
fontSize: 13
}
}
}
},
        tooltip : {  //用于当前坐标点的弹出信息
            /*show : true, //默认显示
            showContent:true, //是否显示提示框浮层*/
            trigger:'item',//触发类型,默认数据项触发
            /*triggerOn:'click',//提示触发条件,mousemove鼠标移至触发,还有click点击触发
            alwaysShowContent:false,
            // 绝对位置,相对于容器左侧 10px, 上侧 10 px
            position: [10, 10],*/
            "formatter":function(params,ticket,callback){//
                //其中params中包含了我们传入的数据和设定的series的name等
                //console.log(params);
                //ticket 是异步回调标识,配合第三个参数 callback 使用。
                // 第三个参数 callback 是异步回调,在提示框浮层内容是异步获取的时候,可以通过         callback 传入上述的 ticket 和 html 更新提示框浮层内容。
                return params.data.name+"<br/>"+params.data.value[2];
            }
        },

        bmap: {
            center: [116.422545110, 39.917055306224895], //当前显示地图的中心点
            zoom: 12,//空间放大的倍数
            roam: true //是否允许用户调节地图,如放大缩小
        },
        visualMap: { //用于开启自定义的视觉颜色条框
            show: true,
            //top: 'top',
            min: 0,
            max: 200,
            //seriesIndex: 0,//如果指定为0 ,那么只会运行第一个series配置
            calculable: true,//如果开启,将会支持手动拖拽更改颜色
            inRange: {
                color: ['blue','blue', 'green', 'yellow', 'red']
            },
            top:20 //颜色指示器放置在顶端
        },
        series: [{  
            name:"人口流动密度",
            type: 'heatmap',//类型为热力图  //设置为scatter才会显示文字提示
            coordinateSystem: 'bmap',//采用的坐标系(地理坐标系)
            pointSize: 8,//显示点的大小
            blurSize: 4, //模糊显示点  其放大倍数越高,显示点的颜色越浅
            /*label: {
                normal: {
                    formatter: '{b}',
                    position: 'right',
                    show: true
                },
                emphasis: {
                    show: true
                }
            },*/
            itemStyle: {
                normal: {
                    color: '#ddb926'
                }
            }
        }]
},

  options: [
        {
            series: [{
                data :convertData(0)
            }]
        }, {
            series: [{
                data : convertData(1)
            }]
        },
        {
            series: [{
            ata : convertData(2)
            }]
        },
        {
            series: [{
            data : convertData(3)
            }]
        },
        {
            series: [{
        data: convertData(4)
        }]
        },
        {
            series: [{
                data : convertData(5)
            }]
        },
        {
            series: [{
                data : convertData(6)
            }]
        },
        {
            series : [{
                data: convertData(7)
            }]
        },
        {

            series: [{
                data: convertData(8)
            }]
        },
        {
            series : [{
                data: convertData(9)
            }]
        },
        {
            series: [{
                data : convertData(10)
            }]
        }
    ]
}

各模块的配置效果图

(3)echarts的series使用的data格式

一般series中采用的数据格式为:[{name:"",value:[[xAxis,yAxis,other,..],]}]

也可以省略name,直接默认使用value, [[xAxis,yAxis,other],],即value中的第一个参数为X维度,Y维度,第三个参数为热力图中的颜色值等。如果需要展示数据,建议采用第一种。

本demo中的数据转换代码为:

//将服务器的json数据 数据为 [ [ {"id": 2, "xAxis":, "yAxis":,"value":,"name": ""}, ] ]
转化为[ {name:"",value:[[xAxis,yAxis,value],] } ]格式
var points = [];
var convertData = function (nb) {
    var res = [];
    var dataObject = data[nb];
    for (var i= 0;i<dataObject.length;i++){
        var concatArray = [];
        concatArray.push(dataObject[i].xAxis);
        concatArray.push(dataObject[i].yAxis);
        concatArray.push(dataObject[i].value);
        res.push({
            name:dataObject[i].name,
            value:concatArray
        });
    }
return res;
}

(4)echarts的使用

进行完以上的所有配置后,采用 myChart.setOption(option);即可使用该配置。
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值