pythonecharts地图画散点_使用echarts3实现散点地图

本文介绍了如何使用 Python eCharts 绘制散点地图,包括地图的初始化、颜色配置、散点图的创建以及样式修改。通过实例展示了从创建地图容器到动态显示数据的过程,适合需要进行数据可视化的开发者参考。
摘要由CSDN通过智能技术生成

在开发过程中,我们总会接到关于数据处理分析的需求,其中有一部分很重要就是数据统计可视化展示,对于数据可视化方面,echarts这点就做的非常好。最近研究echarts,对于散点地图这一块挺感兴趣的,在这里就做一篇整个过程的分享,首先给大家看下效果图:

颜色方面大致比较淡,你们可以根据自己需求调整

一、准备

1、新建html,这边我建立的是echarts-map.html,然后引入echarts文件,可以去官网下载(下载完整版的),然后解压我这边结合的是layui和jquery来的,所以总的引入如下:

echarts-map

2、创建画布容器

二、绘制地图

1、echarts的中国地图想要详细绘制出各省市,需要另外引入js和json文件,先下载map的js和json,密码是uqbj。

在开始的引用文件地方将china.js文件引入:

2、从这里开始使用js来绘制地图,所有代码写在

(1)首先是先初始化 ECharts 示例,在 init() 中传入图表容器 Dom 对象,

(2)同时定义一个变量 option,作为图表的配置项,

(3)通过配置 option,新建一个地理坐标系 geo ,地图类型为中国地图,

(4)然后调用 setOption(option) 为图表设置配置项。

注意:中国地图的map值为 ‘china’ ,世界地图的map值为 ‘world’ ,但如果要引用省市自治区地图 map 值为简体中文,例如 beijing.js,map 值为’北京’。

这里结合layui和jquery:

var layer;

function map() {

// 1、初始化echarts示例map

var map = echarts.init(document.getElementById('map'));

// 2、map的配置,配置 option,新建一个地理坐标系 geo ,地图类型为中国地图

var option = {

geo: {

map: 'china'

}

};

//3、调用 setOption(option) 为图表设置配置项

map.setOption(option);

}

layui.use(['element', 'layer'], function() {

var element = layui.element();

layer = layui.layer;

$(document).ready(function () {

map();

});

});

然后引用json格式的地图数据,通过异步加载的方式,加载完成后需要手动注册地图

这里我们使用 jQuery 的 $.get() 方法异步加载 china.json ,在回调函数中,以上述同样的方法初始化一个 mapCharts 、注册地图并设置 option,所以修改上面的代码为:

var layer;

function map() {

// 1、初始化echarts示例map

var map = echarts.init(document.getElementById('map'));

$.get('plugin/echarts/map/json/china.json',function(chinaJson){

echarts.registerMap('china', chinaJson); // 注册地图

// 2、map的配置,配置 option,新建一个地理坐标系 geo ,地图类型为中国地图

var option = {

geo: {

map: 'china'

}

};

//3、调用 setOption(option) 为图表设置配置项

map.setOption(option);

})

}

layui.use(['element', 'layer'], function() {

var element = layui.element();

layer = layui.layer;

$(document).ready(function () {

map();

});

});

然后就可以看到这样的地图了:

4、给地图改颜色,地图的绘制都在option里面操作,有各种配置项,可以查找官方文档

var option = {

geo: {

map: 'china',

label: {

emphasis: {

show: false

}

},

roam: false,

// 定义样式

itemStyle: {

// 普通状态下的样式

normal: {

areaColor: '#ABCDEF99',

borderColor: '#fff'

},

// 高亮状态下的样式,默认黄色

emphasis: {

//areaColor: '#2a333d'

}

}

}

};

改颜色后的地图如图:

三、绘制散点图

1、新建散点图series

这里用到的数据需要两个,一个是各城市的坐标数据,一个是每个城市对应所需要的值,这里到echarts3的官网例子里面就有,这里不详细赘述,只引几个

所以这里要进行的步骤是:

(1)在 option 中添加一个 series , series 的类型为散点图 scatter ,坐标系为地理坐标系 geo 。

(2)引入城市对应的要显示的data值

(3)引入城市的坐标值

(4)使用函数让data值和坐标值按城市名对应起来

具体看以下代码注释

var layer;

function map() {

var map = echarts.init(document.getElementById('map'));

//(2)引入data数据

var data = [

{name: '海门', value: 9},

{name: '鄂尔多斯', value: 12},

{name: '招远', value: 12},

{name: '舟山', value: 12},

{name: '齐齐哈尔', value: 14},

{name: '盐城', value: 15},

{name: '赤峰', value: 16},

{name: '青岛', value: 18},

{name: '乳山', value: 18},

...

}

$.get('plugin/echarts/map/json/china.json',function(chinaJson){

echarts.registerMap('china', chinaJson); // 注册地图

//(3)引入城市坐标

var geoCoordMap = {

'海门':[121.15,31.89],

'鄂尔多斯':[109.781327,39.608266],

'招远':[120.38,37.35],

'舟山':[122.207216,29.985295],

'齐齐哈尔':[123.97,47.33],

'盐城':[120.13,33.38],

'赤峰':[118.87,42.28],

'青岛':[120.33,36.07],

'乳山':[121.52,36.89],

...

}

//(4)将数据和城市坐标对应上

var convertData = function (data) {

var res = [];

for (var i = 0; i < data.length; i++) {

var geoCoord = geoCoordMap[data[i].name];

if (geoCoord) {

res.push({

name: data[i].name,

value: geoCoord.concat(data[i].value)

});

}

}

return res;

};

var option = {

geo: {

...

}

//(1)series 的类型为散点图 scatter

series: [

{

name: 'pm2.5', // series名称

type: 'scatter', // series图表类型

coordinateSystem: 'geo', // series坐标系类型

data: convertData(data), // series数据内容

//控制显示文本

label: {

normal: {

show: false

},

emphasis: {

show: true

}

},

//series样式

itemStyle: {

normal: {

color: '#ddb926'

}

}

}

]

};

map.setOption(option);

})

}

layui.use(['element', 'layer'], function() {

var element = layui.element();

layer = layui.layer;

$(document).ready(function () {

map();

});

});

这样就可以将散点渲染出来了

到此基本就完成了,接下来就是样式变动了。

四、修改样式

1、根据数值大小改变点的大小,这个在series配置里面加上symbolSize即可:

series: [

{

...

symbolSize: function (val) {//根据数值大小控制点的大小

return val[2] / 10;

},

...

},

效果这样

2、改变点的颜色和新增图示等,在option加上下面部分

var option = {

title: {

text: '全国主要城市空气质量',

left: 'center',

textStyle: {

color: '#fff'

}

},

//提示框组件

tooltip : {

trigger: 'item'

},

//图例组件

legend: {

/*orient: 'vertical',

y: 'bottom',

x:'right',

data:['pm2.5'],

textStyle: {

color: '#000'

}*/

},

visualMap: {

min: 0,

max: 300,

calculable: true,

inRange: {

color: ['#ABCDEF', '#99CC99']

},

textStyle: {

color: '#fff'

}

},

geo:{

...

}

series:[

...

]

}

3、改变前面五大数值点的样式,首先要计算出前面五大数据,然后根据这五大数据另外添个data数据显示,如下面代码,在series再添加个配置:

series: [

{

//前面说过的配置

},

//后面新增配置

{

name: 'Top 5',

type: 'effectScatter',

coordinateSystem: 'geo',

data: convertData(data.sort(function (a, b) {

return b.value - a.value;

}).slice(0, 5)),

symbolSize: function (val) {

return val[2] / 10;

},

showEffectOn: 'render',

rippleEffect: {

brushType: 'stroke'

},

hoverAnimation: true,

label: {

normal: {

formatter: '{b}',

position: 'right',

show: true

}

},

itemStyle: {

normal: {

color: '#99CC99',

shadowBlur: 10,

shadowColor: '#333'

}

},

zlevel: 1

}

]

};

到此就完成整个配置了:

当然,还有很多配置项的操作可以控制整个地图变成你想要的样子,官方配置项文档就可以查看,这里就不一一列举了,举个例子给你们引导下怎么玩地图,若是觉得不错的请赏个赞!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值