Python可视化——地理空间型图表(自用)

地图信息可视化 的实现就是将不可展开的曲面上的地理坐标信息转化为二维平面进行显示,这个过程也叫地图投影(空间三维投影到平面二维)

地图投影的要求:等面积、等角度、等距离。总的来说就是映射到二维平面中的任何点通过比例尺放大到实际标准一致,即为成功进行地图投影。

当然,没有任何一种投影的方法可以同时满足:等面积、等角度、等距离这三个要求,所以投影方法分为三种:等面投影、等角投影、等距投影

常见的三种电视中看得见的地图投影:墨卡托投影(圆柱投影)、阿伯斯投影(圆锥投影)、方位投影

图片来源:https://it.sohu.com/a/738294084_121343791
那么如何用python来绘制我们想要的地图?

首先可以通过python来使用GenPandas和Basemap两个包,这两个安装包都内置有世界地图的绘制数据信息,其不仅可以绘制不同投影的地图,同时也可以根据不同的地区名来提取对应地区的地理数据,从而绘制全局或局部地区的地图。

国家地理信息统计局可以下载SHP格式的地图数据 ,并使用绘图软件来打开这些SHP格式文件,就可以绘制相应地图。同时也可以下载json格式的地图数据,也可以通过绘制软件和python中涉及的两个包进行读取并绘制。幸运的是GenPandas中自带有世界地图的数据信息,可以直接通过以下方式进行使用:

python 复制代码
安装genpandas的时候记得使用镜像:
Conda create -n gen_pandas python=3.7
Conda activate gen_pandas
pip install geopandas matplotlib descartes -i https://mirrors.aliyun.com/pypi/simple/

如果还是显示没有genpandas就看一下python解释器对应的是不是gen_pandas虚拟环境中的解释器,如下:


然后运行下面这个代码:查看数据集格式

python 复制代码
import geopandas as gpd
# 加载内置的世界地图数据集(来自Natural Earth)
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))

print(world.head())  # 输出前5行示例

运行结果:

然后运行以下代码:

python 复制代码
import matplotlib.pyplot as plt
import geopandas as gpd
# 加载内置的世界地图数据集(来自Natural Earth)
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
# 绘制基础地图
fig, ax = plt.subplots(figsize=(15, 10))
world.plot(ax=ax, color='lightblue', edgecolor='black')

# 添加标题和坐标轴
ax.set_title("World Map (Natural Earth Dataset)", fontsize=16)
ax.set_axis_off()  # 隐藏坐标轴
plt.show()

得到以下全球地图:

相关推荐
DeanWinchester_mh24 分钟前
DeepSeek新论文火了:不用卷算力,一个数学约束让大模型更聪明
人工智能·学习
天天爱吃肉821830 分钟前
【跨界封神|周杰伦×王传福(陶晶莹主持):音乐创作与新能源NVH测试,底层逻辑竟完全同源!(新人必看入行指南)】
python·嵌入式硬件·算法·汽车
EmbedLinX33 分钟前
嵌入式之协议解析
linux·网络·c++·笔记·学习
楚轩努力变强34 分钟前
iOS 自动化环境配置指南 (Appium + WebDriverAgent)
javascript·学习·macos·ios·appium·自动化
盐焗西兰花37 分钟前
鸿蒙学习实战之路-Reader Kit自定义页面背景最佳实践
学习·华为·harmonyos
薛定谔的猫喵喵38 分钟前
基于PyQt5的视频答题竞赛系统设计与实现
开发语言·qt·音视频
岱宗夫up43 分钟前
Python 数据分析入门
开发语言·python·数据分析
xhbaitxl43 分钟前
算法学习day38-动态规划
学习·算法·动态规划
Aliex_git44 分钟前
跨域请求笔记
前端·网络·笔记·学习
tritone44 分钟前
使用阿贝云免费云服务器学习Vagrant,是一次非常顺畅的体验。作为一名开发者
服务器·学习·vagrant