说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
用 Python 绘制中国城市地图数据主要用于对地理数据进行可视化分析。这种方法可以帮助您更直观地了解数据的分布情况,并为您提供关于数据之间的相关性的更深入的理解。例如,您可以通过使用地图数据绘制中国城市人口分布图,以了解每个城市的人口数量和密度。您还可以通过使用地图数据绘制中国城市的经济数据,以了解每个城市的经济活动情况,包括贸易额、工业产值等。本例,我们利用 pandas 和 pyecharts 来完成相关需求。
首先生成测试数据,并读取为 pandas 的 DataFrame,随机数据用 Python 内置的 random。
import pandas as pd
import random
random.seed(66)
random.seed(66)
cities = ['北京市', '上海市', '广州市', '深圳市', '天津市',
'武汉市', '重庆市', '成都市', '东莞市', '西安市',
'沈阳市', '青岛市', '大连市', '宁波市', '厦门市',
'长沙市', '哈尔滨市', '南京市', '郑州市', '合肥市',
'苏州市', '常州市', '无锡市', '昆明市', '南昌市',
'南宁市', '济南市', '长春市', '福州市', '佛山市',
'温州市', '石家庄市', '太原市', '唐山市', '烟台市',
'中山市', '泉州市', '南通市', '扬州市', '徐州市',
'盐城市', '淄博市', '洛阳市', '柳州市', '泰州市',
'丽江市', '海口市', '三亚市', '长治市', '桂林市',
'大庆市', '兰州市', '贵阳市', '南阳市', '邯郸市',
'保定市', '呼和浩特市', '沧州市', '廊坊市', '衡阳市',
'商丘市', '南充市', '临沂市', '漯河市', '阜阳市',
'景德镇市', '江门市', '茂名市', '惠州市', '芜湖市',
'淮安市', '马鞍山市', '绵阳市', '乌鲁木齐市', '拉萨市',
'西宁市', '德阳市', '绍兴市', '金华市', '嘉兴市']
df = pd.DataFrame({'城市': cities,
'数值': [random.randint(1, 20) for i in cities]
})
df.head()
'''
城市 数值
0 北京市 3
1 上海市 10
2 广州市 14
3 深圳市 8
4 天津市 15
'''
数据生成完成,接下来我们开始分析如何完成需求。
Pyecharts是一款开源的 Python 图表绘制库,支持多种图表类型的绘制,例如饼图,折线图,散点图,条形图,柱形图等。同时它还支持生成地图图表。
使用 Pyecharts 生成地图图表需要以下步骤:
pip install pyecharts
from pyecharts import options as opts
from pyecharts.charts import Map
以上是生成地图图表的基本流程。Pyecharts 提供了丰富的配置选项,可以根据需要调整图表样式。
在这个需求中,我们用它来完成。
先导入相关的库,同时将 Notebook 设置为我们使用的 jupyterlab:
from pyecharts import options as opts
from pyecharts.globals import CurrentConfig
from pyecharts.charts import Map
import pandas as pd
CurrentConfig.NOTEBOOK_TYPE = 'jupyter_lab'
先将数据构造成 pyecharts 需要的列表对为元素的列表,这里用到 pandas 的应用方法操作:
data = df.loc[:, '城市':].apply(list, axis=1).to_list()
data
'''
[['北京市', 3],
['上海市', 10],
['广州市', 14],
...
['金华市', 20],
['嘉兴市', 17]]
'''
接下来编写地图展示功能:
c = (
Map(init_opts=opts.InitOpts(width='1100px', height='1000px'))
.add(
'城市',
data,
"china-cities",
label_opts=opts.LabelOpts(is_show=False),
is_map_symbol_show=False,
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(min_=0,
max_=20,
is_show=False),
legend_opts=opts.LegendOpts(is_show=False)
)
# .render("map_china_cities.html")
)
分别在不同的 jupyterlab 单元格执行以下代码就可以看到地图可视化效果。
c.load_javascript()
c.render_notebook()
以上 Python 代码主要是使用了 pyecharts 库和 pandas 库来绘制中国地图,并将某个城市的数据可视化展示。
这样就完成发需求,可以修改以上参数的值重新执行查看结果以理解它们的作用。
(完)
更新时间:2024-08-18 16:35:24 标签:pandas python pyecharts 地图