用pyecharts在中国地图展示全国工业危险废物焚烧设施在各个城市的分布
介绍一下如何通过python在中国地图上实现危险废物焚烧设施的分布情况:
1 需要安装pyecharts,建议使用conda自带的Anoconda Prompt
注意此时安装的是pyecharts最新版本,因此后面用到的Map()方法在 pyecharts.charts 而不是 pyecharts
pip install pyecharts#耐心等待,一次不见得成功
2 需要pandas模块对自己的数据进行读取和清洗
# -*- coding: utf-8 -*-
"""
焚烧项目全国分布
"""
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Map
Title=['city','station','values']#增加数据的标题,方便后续调用数据:city即城市所在列的数据,values即焚烧设施数量所在列的数据。
df_a=df['city']#将城市数据拿出来
print(df_a)#看一下数据怎么样,发现歪歪扭扭,这会导致地图中数据不全:由于部分城市名称前有空格,map()找不到例如' 北京'的位置。
#下面就去掉空格
def delete_block():#.strip()为去除字符串首尾空格
for i in range(len(df_a)):
df_a[i]=df_a[i].strip()
return df_a
df_a=delete_block()#处理后的城市
df_b=df['values']#焚烧设施的数量
#print(a)#打印看下,这个很重要,没事经常打印下看看。
#好了,开始画图:
c = (
Map()
.add(
"工业危废焚烧设施数量",#此处可以为空: ''
[list(z) for z in zip(df_a,df_b)],
"china-cities",is_roam=False,
label_opts=opts.LabelOpts(is_show=False,formatter='{b}\n{c}'),#含义解释: {a}(系列名称),{b}(区域名称),{c}(合并数值), {d}(无)
.set_global_opts(
title_opts=opts.TitleOpts(title="Map-中国地图(危废焚烧设施分布情况)"),
visualmap_opts=opts.VisualMapOpts( is_piecewise=True, # 设置为分段,焚烧设施数量多的和数量少的城市使用不同颜色块来表示
pieces=[ # 自定义分段名称和颜色,是的地图画出来更好看
{"value": "1", "label": "A", "color": "red"},
{"value": "2", "label": "B", "color": "orange"},
{"value": "3", "label": "C", "color": "yellow"},
{"value": "4", "label": "D", "color": "green"},
{"value": "5", "label": "E", "color": "blue"},
]),#也可不设置:visualmap_opts=opts.VisualMapOpts()
)
.render("Hazardous_Wastes_distribution.html")# 到你的电脑 python默认存储路径,打开Hazardous_Wastes_distribution.html即可通过网页看到分布图,如下:
)
(数据非最新统计,仅供参考哦!)
- 原始数据截图(csv格式):
- 画好的图: