大家好!今天我和大家分享如何用Python实现地图可视化。地图可视化能帮我们直观展示地理数据,是数据分析中非常实用的技能。我们将学习几个主流的Python地图可视化库,一起动手实践。
1. Folium - 交互式地图神器
Folium是基于leaflet.js的Python库,可以创建漂亮的交互式地图。先安装Folium:
pip install folium
来画一个简单的上海地图:
import folium
# 创建地图对象,设置中心点和缩放级别
shanghai_map = folium.Map(
location=[31.2304, 121.4737],
zoom_start=12
)
# 添加标记
folium.Marker(
[31.2397, 121.4998],
popup='东方明珠'
).add_to(shanghai_map)
# 保存地图
shanghai_map.save('shanghai.html')
小贴士:zoom_start的值越大,地图显示的越详细。一般城市地图建议设置为11-13之间。
2. Pyecharts - 制作精美地图图表
Pyecharts提供了丰富的地图可视化选项:
from pyecharts.charts import Map
from pyecharts import options as opts
# 准备数据
data = [
(“北京”, 100),
(“上海”, 200),
(“广州”, 300)
]
# 创建地图
map_chart = (
Map()
.add(“销量”, data)
.set_global_opts(
title_opts=opts.TitleOpts(title=“全国销量分布”),
visualmap_opts=opts.VisualMapOpts()
)
)
map_chart.render(“sales_map.html”)
3. 地理信息可视化
如果要展示更复杂的地理信息,我们可以使用GeoPandas:
import geopandas as gpd
import matplotlib.pyplot as plt
# 读取地理数据
china = gpd.read_file(“china.geojson”)
# 绘制地图
china.plot(
column='population',
legend=True,
legend_kwds={'label':'人口'},
figsize=(15, 10)
)
plt.title(“中国人口分布图”)
plt.show()
注意事项:使用GeoPandas前需要准备合适的地理数据文件(.shp或.geojson格式)。
4. 热力图展示
使用Folium的插件可以轻松创建热力图:
from folium.plugins import HeatMap
# 准备坐标点数据
data = [
[31.2304, 121.4737, 100], # 纬度、经度、权重
[31.2397, 121.4998, 200]
]
# 创建地图
m = folium.Map([31.2304, 121.4737], zoom_start=12)
# 添加热力图层
HeatMap(data).add_to(m)
m.save('heatmap.html')
小贴士:热力图特别适合展示密集的点数据,比如门店分布、人口密度等。
实用技巧总结
选择合适的地图库:
Folium适合制作交互式web地图
Pyecharts适合制作数据报表
GeoPandas适合处理地理数据分析
地图样式设置:
合理设置缩放级别
选择合适的配色方案
添加图例说明
数据处理:
确保经纬度数据准确
数据最好提前清洗和规范化
考虑性能优化,数据量大时可以采样
小伙伴们,今天的Python地图可视化介绍就到这里啦!赶快动手实践,做出自己的第一个地图作品吧。遇到问题欢迎在评论区交流,祝大家学习愉快,Python之路越走越远!
领取专属 10元无门槛券
私享最新 技术干货