当前位置: 首页 > news >正文

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

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

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

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

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

图片来源:https://it.sohu.com/a/738294084_121343791

 那么如何用python来绘制我们想要的地图?

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

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

安装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虚拟环境中的解释器,如下:

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

import geopandas as gpd
# 加载内置的世界地图数据集(来自Natural Earth)
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))print(world.head())  # 输出前5行示例

运行结果:

 然后运行以下代码:

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()

得到以下全球地图:

http://www.lryc.cn/news/547992.html

相关文章:

  • WordPress报502错误问题解决-php-fpm-84.service loaded failed failed LSB: starts php-fpm
  • Python在SEO中的自动化应用爬虫开发与日志分析实例
  • thingsboard edge 在windows 环境下的配置
  • nnMamba:基于状态空间模型的3D生物医学图像分割、分类和地标检测
  • nginx 配置403页面(已亲测)
  • SyntaxError: Invalid or unexpected token in JSON at position x
  • Uncaught TypeError: Cannot read properties of undefined (reading ‘xxx‘)
  • Nginx 跨域配置详细讲解
  • 前端开发基石:HTML语义化深度解析与实践指南
  • mongodb安装教程以及mongodb的使用
  • C# 中的多线程同步机制:lock、Monitor 和 Mutex 用法详解
  • 【通义万相】蓝耘智算 | 开源视频生成新纪元:通义万相2.1模型部署与测评
  • 期权帮|中证1000股指期权交割结算价怎么算?
  • Python 面向对象高级编程-定制类
  • qt creator示例空白
  • MyBatis-Plus 与 Spring Boot 的最佳实践
  • TDengine 中的标签索引
  • 工业自动化核心:BM100 信号隔离器的强大力量
  • Ascend开发板镜像烧录、联网、其他设备访问
  • Llama-Factory框架下的Meta-Llama-3-8B-Instruct模型微调
  • MySQL进阶-分析查询语句EXPLAIN
  • Python 高级编程与实战:构建数据可视化应用
  • 学习threejs,Animation、Core、CustomBlendingEquation、Renderer常量汇总
  • Java直通车系列14【Spring MVC】(深入学习 Controller 编写)
  • 【蓝桥杯集训·每日一题2025】 AcWing 5539. 牛奶交换 python
  • Mybatis缓存机制(一级缓存和二级缓存)
  • 设计模式--单例模式
  • ubuntu22.04本地部署OpenWebUI
  • 2025-3-7二叉树的线索化
  • 以商业思维框架为帆,驭创业浪潮前行