python使用pyecharts绘制地图

pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。

我们利用pyechartspycharm实现地图数据的可视化。

pyecharts导包报错请戳
https://blog.csdn.net/weixin_43746433/article/details/91188733

pyecharts v0.3.2以后,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表,可自行安装对应的地图文件包。

地图文件被分成了三个 Python 包,分别为:
全球国家地图: echarts-countries-pypkg (1.9MB)
中国省级地图: echarts-china-provinces-pypkg (730KB)
中国市级地图: echarts-china-cities-pypkg (3.8MB)

直接使用python的pip安装:

选择自己需要的安装的地图
$ pip install echarts-countries-pypkg
$ pip install echarts-china-provinces-pypkg
$ pip install echarts-china-cities-pypkg
$ pip install echarts-china-counties-pypkg
$ pip install echarts-china-misc-pypkg
$ pip install echarts-united-kingdom-pypkg

一.查看数据
从51job爬取的大数据工作在各城市分布数据

import pandas as pd
data=pd.read_csv('test_datasets_finally.csv',delimiter='#',header=0)
df=pd.DataFrame(data)
print(df.shape)
print(df.loc[:,'area'].nunique())#地区数
area=df.loc[:,'area'].value_counts()#每个地区数量
#area=pd.DataFrame(area)
print(area.shape)
print(area.head())

在这里插入图片描述
可以看到,地区数据格式为dataframe格式,转换为列表

area2=area.values.tolist()
area=area.reset_index()
area1=area.loc[:,'index'].tolist()
print('地区',area1)
print('数量',area2)

在这里插入图片描述

二.绘制中国地图

maptype=‘china’ 只显示全国直辖市和省级,数据只能是省名和直辖市的名称

1.绘制分布图

这三个可直接使用全国城市

from pyecharts import Bar
from pyecharts import Geo
from pyecharts import Map
map = Map("大数据工作分布图", "data from 51job",title_color="#404a59", title_pos="center")
map.add("", area1,area2 , maptype='china',is_visualmap=True,visual_text_color='#000',is_label_show=True)
map.render("./job_pic/大数据工作城市分布.html")
#map.render(path='snapshot.png')
#map.render(path='snapshot.pdf')

在这里插入图片描述

2.绘制热力图

geo = Geo("大数据工作分布热力图", "data from 51job", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')
geo.add("大数据工作分布热力图", area1, area2, visual_range=[0, 35], maptype='china',type='heatmap',visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
geo.render('./job_pic/大数据工作分布热力图.html')

在这里插入图片描述
3.绘制评分图

geo = Geo("大数据工作分布城市评分", "data from 51job", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')
# type="effectScatter", is_random=True, effect_scale=5  使点具有发散性
geo.add("空气质量评分", area1, area2, type="effectScatter",maptype='china', is_random=True, effect_scale=5, visual_range=[0, 5],visual_text_color="#fff", symbol_size=10, is_visualmap=True, is_roam=False)
geo.render("./job_pic/大数据工作分布城市评分.html")

在这里插入图片描述
三.省份地图

河南地图 数据必须是省内放入城市名

# 城市 -- 指定省的城市 xx市
city = ['郑州市', '安阳市', '洛阳市', '濮阳市', '南阳市', '开封市', '商丘市', '信阳市', '新乡市']
values2 = [1.07, 3.85, 6.38, 8.21, 2.53, 4.37, 9.38, 4.29, 6.1]
map2 = Map("河南地图",'河南', width=1200, height=600)
map2.add('河南', city, values2, visual_range=[1, 10], maptype='河南', is_visualmap=True, visual_text_color='#000')
map2.render(path="./job_pic/河南地图.html")

在这里插入图片描述
区县地图

商丘地图 数据为商丘市下的区县

# 区县 -- 具体城市内的区县  xx县
quxian = ['夏邑县', '民权县', '梁园区', '睢阳区', '柘城县', '宁陵县']
values3 = [3, 5, 7, 8, 2, 4]


map3 = Map("商丘地图",'商丘', width=1200, height=600)
map3.add("商丘", quxian, values3, visual_range=[1, 10], maptype='商丘', is_visualmap=True,
    visual_text_color='#000')
map3.render(path="./job_pic/商丘地图.html")

在这里插入图片描述

四.世界地图

#世界地图数据
value = [95.1, 23.2, 43.3, 66.4, 88.5]
attr= ["China", "Canada", "Brazil", "Russia", "United States"]

map0 = Map("世界地图示例", width=1200, height=600)
map0.add("世界地图", attr, value, maptype="world",  is_visualmap=True, visual_text_color='#000')
map0.render(path="./job_pic/世界地图.html")

在这里插入图片描述
参考:https://www.jianshu.com/p/e0b2851672cd

  • 45
    点赞
  • 405
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
好的,以下是使用 pyecharts 绘制省级地图的步骤: 1. 安装 pyecharts 和 echarts-countries-pypkg 模块 ``` pip install pyecharts echarts-countries-pypkg ``` 2. 导入需要的模块 ```python from pyecharts.charts import Map import pyecharts.options as opts from pyecharts.commons.utils import JsCode from echarts_countries_pypkg import provinces ``` 3. 准备数据 ```python # 假设我们要绘制山东省各市的地图,数据如下: data = [ ('济南市', 100), ('青岛市', 200), ('淄博市', 150), ('枣庄市', 80), ('东营市', 120), ('烟台市', 180), ('潍坊市', 160), ('济宁市', 130), ('泰安市', 100), ('威海市', 90), ('日照市', 70), ('莱芜市', 50), ('临沂市', 140), ('德州市', 110), ('聊城市', 80), ('滨州市', 70), ('菏泽市', 60), ] ``` 4. 绘制地图 ```python # 创建 Map 对象 m = Map() # 设置地图参数 m.set_global_opts( title_opts=opts.TitleOpts(title="山东省各市地图"), visualmap_opts=opts.VisualMapOpts( is_piecewise=True, pieces=[ {"min": 0, "max": 50, "label": "0-50"}, {"min": 50, "max": 100, "label": "50-100"}, {"min": 100, "max": 150, "label": "100-150"}, {"min": 150, "max": 200, "label": "150-200"}, ], ), ) # 设置地图数据 m.add("", data, maptype="山东") # 渲染地图 m.render("shandong_map.html") ``` 以上代码会生成一个名为 `shandong_map.html` 的 HTML 文件,可以在浏览器中打开查看。如果需要在 Jupyter Notebook 中显示地图,可以使用 `m.render_notebook()` 方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值