PyEcharts——地图-数据可视化-画图

目录

安装:

实例代码:

世界地图:

中国地图:

省份地图:

市级地图:

热力分布图geo


画地图的开发包包括以下:

geopandas  ,itchat,basemap,matplotlib以及Levenshtein  、 pygal 。

官方文档

http://pyecharts.org/#/

注意事项:notebook用的浏览器一定要是谷歌浏览器

地图缺失处理办法:

https://blog.csdn.net/weixin_41563274/article/details/82904106

有些时候多打一些字比如:市、县可能都不识别。比如菏泽不能写成菏泽市,又比如北京却可以写成北京市。

解决办法:(前提有各个城市的经纬度坐标)

临时添加城市以及经纬度坐标!

test_geo = Geo("test", width=1200, height=600)
#这里添加一个自定义坐标
for i in range(datefram.shape[0]):
    test_geo.add_coordinate(datefram['城市'][i],datefram['经度'][i],datefram['纬度'][i])

获取已知城市地理坐标

from pyecharts.datasets.coordinates import get_coordinate,search_coordinates_by_keyword
search_coordinates_by_keyword('北京市')
#官网解读
# http://pyecharts.org/#/zh-cn/datasets?id=%e5%9c%b0%e7%90%86%e7%bb%8f%e7%ba%ac%e5%ba%a6%e5%9d%90%e6%a0%87

 

说明:这些包都正常安装了,但是notebook中无法显示地图,但是保存的网页中可以显示,当时用的是360急速浏览器。

我以为重新启动了notebook就好使了,但是还是我不好使,后来认为浏览器的原因,故设置默认程序为谷歌浏览器,就ok了

https://blog.csdn.net/wsp_1138886114/article/details/80509375#%E4%B8%83-%E5%9C%B0%E5%9B%BEpyecharts%E5%9C%B0%E5%9B%BE%E6%95%B0%E6%8D%AE%E6%8E%A5%E5%8F%A3

 

https://www.kesci.com/home/project/5a01adce60680b295c19deb4

https://blog.csdn.net/weixin_41563274/article/details/82904106

 

这里选用的是pyecharts模块,虽然python有自带的画图模块,matplotlib,但他是静态图,后来发现了pyecharts模块,瞬间爱上了这个模块,这种动态效果,数据好处理,简直简直太好用了,后面我会继续更新该模块其他画图功能

安装:

pip install pyecharts 

pip install pyecharts_snapshot

全球国家地图: echarts-countries-pypkg:世界地图和 213 个国家,包括中国地图

中国省级地图: echarts-china-provinces-pypkg:23 个省,5 个自治区

中国市级地图: echarts-china-cities-pypkg:370 个中国城市

中国县区级地图:echarts-china-counties-pypkg:2882 个中国县·区

中国区域地图:echarts-china-misc-pypkg:11 个中国区域地图,比如华南、华北。

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
除此之外,英国2016选区图: echarts-united-kingdom-pypkg:英国选区图可以用来画与政治经济相关的数据

市级地图讲解:双鸭山

省份命名:省份不能带‘省’字

city=['宝清县','友谊县',] #这些省份市,县,少一个字都会报错的,不会显示

city=['双鸭山市','鸡西市',] #这些省份市,县,少一个字都会报错的,不会显示,
values2 =[1,2]
map2 = Map("地图",'河南', width=1200, height=600) # 这个是题目名字写什么无妨,
map2.add('河南', city, values2, visual_range=[1, 10], maptype='黑龙江', is_visualmap=True, visual_text_color='#000')#这里不能写黑龙江省
# map2.show_config()
map2.render(path="./04-02河南地图.html") #保存到html中


city=['宝清县','友谊县',] #这些省份市,县,少一个字都会报错的,不会显示
values2 =[1,2]
map2 = Map("地图",'河南', width=1200, height=600) # 这个是题目名字写什么无妨,
map2.add('河南', city, values2, visual_range=[1, 10], maptype='双鸭山', is_visualmap=True, visual_text_color='#000')
#visual_range=[1, 10] 最高的颜色数值为10,一般不够用,颜色最深的数值为10超过10的颜色还是一样深
# map2.show_config()
map2.render(path="./04-02河南地图.html") #保存到html中
map2

从文件中获取省份的名字——修改省份名字

['北京市' '天津市' '河北省' '山西省' '内蒙古自治区' '辽宁省' '吉林省' '黑龙江省' '上海市' '江苏省' '浙江省'
 '安徽省' '福建省' '江西省' '山东省' '河南省' '湖北省' '湖南省' '广东省' '广西壮族自治区' '海南省' '重庆市'
 '四川省' '贵州省' '云南省' '西藏自治区' '陕西省' '甘肃省' '青海省' '宁夏回族自治区' '新疆维吾尔自治区']

以上的名字无效,需要将‘市’,‘省’,‘自治区’,等等去掉

for i in range(len(provice)): # ‘壮字没办法去掉不知道怎么回事’
    provice[i] = provice[i].strip('壮')
    provice[i] = provice[i].strip('省')
    provice[i] = provice[i].strip('市')

    provice[i] = provice[i].strip('自治区')
    provice[i] = provice[i].strip('回族')
    provice[i] = provice[i].strip('维吾尔')
    pass
for i in range(len(provice)):
    provice[i] = provice[i].strip('壮')
    
print(provice)

去掉后:

['北京' '天津' '河北' '山西' '内蒙古' '辽宁' '吉林' '黑龙江' '上海' '江苏' '浙江' '安徽' '福建' '江西'
 '山东' '河南' '湖北' '湖南' '广东' '广西' '海南' '重庆' '四川' '贵州' '云南' '西藏' '陕西' '甘肃'
 '青海' '宁夏' '新疆']

 

实例代码:

from pyecharts import Map, Geo

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

# 省和直辖市,注意不能带 省这个字
province_distribution = {'河南': 45.23, '北京': 37.56, '河北': 21, '辽宁': 12, '江西': 6, '上海': 20, '安徽': 10, '江苏': 16, '湖南': 9, '浙江': 13, '海南': 2, '广东': 22, '湖北': 8, '黑龙江': 11, '澳门': 1, '陕西': 11, '四川': 7, '内蒙古': 3, '重庆': 3, '云南': 6, '贵州': 2, '吉林': 3, '山西': 12, '山东': 11, '福建': 4, '青海': 1, '舵主科技,质量保证': 1, '天津': 1, '其他': 1}
provice=list(province_distribution.keys())
values=list(province_distribution.values())

# 城市 -- 指定省的城市 xx市
city = ['郑州市', '安阳市', '洛阳市', '濮阳市', '南阳市', '开封市', '商丘市', '信阳市', '新乡市']
values2 = [1.07, 3.85, 6.38, 8.21, 2.53, 4.37, 9.38, 4.29, 6.1]

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

世界地图:

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

中国地图:

# maptype='china' 只显示全国直辖市和省级
# 数据只能是省名和直辖市的名称
map = Map("中国地图",'中国地图', width=1200, height=600)
map.add("", provice, values, visual_range=[0, 50],  maptype='china', is_visualmap=True,
    visual_text_color='#000')
# map.show_config()
map.render(path="./04-01中国地图.html")
map

省份地图:

# 河南地图  数据必须是省内放入城市名
map2 = Map("河南地图",'河南', width=1200, height=600)
map2.add('河南', city, values2, visual_range=[1, 10], maptype='河南', is_visualmap=True, visual_text_color='#000')
map2.show_config()
map2.render(path="./data/04-02河南地图.html")

市级地图:

# # 商丘地图 数据为商丘市下的区县
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="./04-03商丘地图.html")
map3

下面的这两个可直接使用全国城市

热力分布图geo

# 下面的这两个可直接使用全国城市
# 热力分布图
from pyecharts import Map, Geo
data = [
("海门", 9),("鄂尔多斯", 12),("招远", 12),("舟山", 12),("齐齐哈尔", 14),("盐城", 15),
("赤峰", 16),("青岛", 18),("乳山", 18),("金昌", 19),("泉州", 21),("莱西", 21),
("日照", 21),("胶南", 22),("南通", 23),("拉萨", 24),("云浮", 24),("梅州", 25)]



geo = Geo("全国主要城市空气质量热力图", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')

attr, value = geo.cast(data)
geo.add("空气质量热力图", attr, value, visual_range=[0, 25], type='heatmap',visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
# geo.show_config()
geo.render(path="./04-04空气质量热力图.html")

 

# 空气质量评分
indexs = ['上海', '北京', '合肥', '哈尔滨', '广州', '成都', '无锡', '杭州', '武汉', '深圳', '西安', '郑州', '重庆', '长沙']
values = [4.07, 1.85, 4.38, 2.21, 3.53, 4.37, 1.38, 4.29, 4.1, 1.31, 3.92, 4.47, 2.40, 3.60]


geo = Geo("全国主要城市空气质量评分", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')

# type="effectScatter", is_random=True, effect_scale=5  使点具有发散性
geo.add("空气质量评分", indexs, values, type="effectScatter", is_random=True, effect_scale=5, visual_range=[0, 5],visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
# geo.show_config()
geo.render(path="./04-05空气质量评分.html")

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值