Python-GeoPandas地图、专题地图绘制

article/2025/10/11 3:59:08

Python-GeoPandas地图绘制、专题地图绘制

GeoPandas是一个开源项目,Pandas是Python的一个结构化数据分析的利器,GeoPandas扩展了pandas使用的数据类型,允许对几何类型进行空间操作,其DataFrame结构相当于GIS数据中的一张属性表,使得可以直接操作矢量数据属性表,其目标是使得在python中操作地理数据更方便。

  1. 矢量数据来源
    可以参照我的另一篇文章,将阿里云上GeoJSON的数据利用Python保存到本地磁盘上。
  • 数据地址:

http://datav.aliyun.com/tools/atlas/#&lat=31.80289258670676&lng=104.2822265625&zoom=4

  1. 专题地图资料搜集
    可以利用统计年鉴上的数据或是其他数据制成CSV或是Excel文件,通过矢量数据的一个公共字段来连接。例如我的数据(公共字段为 name):
矢量数据属性表
专题地图数据      来源:2019年河南省统计年鉴

3.1 地图绘制

  • 效果预览
  • 实现代码
# -*- coding: utf-8 -*-"""
@File    : provinceMapMake.py
@Author  : fungis@163.com
@Time    : 2020/04/20 16:49
@notice  : 地图颜色(https://matplotlib.org/tutorials/colors/colormaps.html)
"""import geopandas as gpd
import matplotlib.pyplot as plt# 输入图名
Map_name = '河南省行政区划'
# 加载数据-矢量数据的位置
regions = gpd.GeoDataFrame.from_file('./shp/henanProvince/河南省.shp', encoding='utf-8')
# 加载数据-读取矢量数据的属性表
data = gpd.read_file('./shp/henanProvince/河南省.dbf', encoding='utf-8')
# 复制一份该表的数据
reg02 = data.copy()
# # 专题地图制图
reg02['coords'] = reg02['geometry'].apply(lambda x: x.representative_point().coords[0])reg02.plot(figsize=(8, 6),  # 图像大小column='name',  # 分级设色字段# scheme='quantiles',  # MapClassify-分级类型legend=False,  # 图例cmap='Pastel1_r',  # 渐变色带的名称#Set2edgecolor='k')  # 边框颜色
# 地图标注
for n, i in enumerate(reg02['coords']):plt.text(i[0] - 0.2, i[1], reg02['name'][n], fontsize=8, horizontalalignment="left")  # 标注位置X,Y,标注内容plt.title('Python-{}图'.format(Map_name), fontsize=18, fontweight='bold')
plt.grid(True, alpha=0.5)  # 显示网格,透明度为50%
# plt.show()
plt.savefig('./images/{}.png'.format(Map_name), dpi=300)

3.2专题分级设色图

  • 效果预览
数据来源:2019年河南省统计年鉴
- 实现代码
# -*- coding: utf-8 -*-"""
@File    : 河南省2018年经济发展图.py
@Author  : fungis@163.com
@Time    : 2020/04/20 11:29
@notice  : 参照https://www.cnblogs.com/feffery/p/12381322.html
"""import geopandas as gpd
import pandas as pd
import matplotlib.pyplot as plt# 加载数据-矢量数据的位置
regions = gpd.GeoDataFrame.from_file('./shp/henanProvince/河南省.shp', encoding='utf-8')# 加载已搜集的excel数据,如果是csv文件用pd.read_csv()方法
data = pd.read_excel('./data-use/henan-data.xlsx')# 处理数据格式(Excel中的name字段中有空格,消除空格)
data['area_name'] = data['name'].str.replace(' ', '')# 连接矢量数据属性表与Excel表格
reg = pd.merge(regions, data, left_on='name', right_on='area_name')
# 复制整张表
reg02 = reg.copy()
# # 专题地图制图
reg02['coords'] = reg02['geometry'].apply(lambda x: x.representative_point().coords[0])reg02.plot(figsize=(8, 6),  # 图像大小column='avg_gdp_2018',  # 分级设色字段scheme='quantiles',  # MapClassify-分级类型legend=True,  # 图例legend_kwds={"loc": "lower left"},cmap='Reds',  # 渐变色带的名称edgecolor='k')  # 边框颜色
# 地图标注
for n, i in enumerate(reg02['coords']):plt.text(i[0] - 0.13, i[1], reg02['area_name'][n])  # 标注位置X,Y,标注内容plt.title('2018年河南省各地级市人均GDP(单位:元)')
plt.grid(True, alpha=0.5)  # 显示网格,透明度为50%
# plt.show()plt.savefig('./images/河南省2018年各地级市GDP.png', dpi=300)
  • 效果预览
数据来源:2019年河南省统计年鉴
  • 实现代码
# -*- coding: utf-8 -*-"""
@File    : 经济发展组合图.py
@Author  : fungis@163.com
@Time    : 2020/04/20 11:29
@notice  :
"""
'''
地图颜色(https://matplotlib.org/tutorials/colors/colormaps.html)
cmaps['Sequential'] = ['Greys', 'Purples', 'Blues', 'Greens', 'Oranges', 'Reds','YlOrBr', 'YlOrRd', 'OrRd', 'PuRd', 'RdPu', 'BuPu','GnBu', 'PuBu', 'YlGnBu', 'PuBuGn', 'BuGn', 'YlGn']
'''import geopandas as gpd
import pandas as pd
import matplotlib.pyplot as plt# 加载数据-矢量数据的位置
regions = gpd.GeoDataFrame.from_file('./shp/henanProvince/河南省.shp', encoding='utf-8')# 加载已搜集的excel数据,如果是csv文件用pd.read_csv()方法
data = pd.read_excel('./data-use/henan-data.xlsx')
# 处理数据格式
data['area_name'] = data['name'].str.replace(' ', '')
# 计算整合数据:人均产值= 产业产值/区域人均
data['data_one'] = data['第一产业'] / data[2018] * 10000
data['data_two'] = data['第二产业'] / data[2018] * 10000
data['data_three'] = data['第三产业'] / data[2018] * 10000
#表格链接-连接矢量数据属性表与Excel表格
reg = pd.merge(regions, data, left_on='name', right_on='area_name')
reg03 = reg.copy()
# 列表 第一个是分级设色的字段,第二个是图名
data_plot = [('avg_gdp_2018', '2018年河南省各市人均GDP(单位:元)'),('data_one', '2018年河南省各市第一产业人均产值(单位:元)'),('data_two', '2018年河南省各市第二产业人均产值(单位:元)'),('data_three', '2018年河南省各市第三产业人均产值(单位:元)')]#图纸大小设置
plt.figure(figsize=(16, 14))
for m, cal in enumerate(data_plot):reg03['coords'] = reg03['geometry'].apply(lambda x: x.representative_point().coords[0])reg03.plot(ax=plt.subplot(2, 2, m + 1),column=cal[0],  # 分级设色字段scheme='Quantiles',  # ['Equal_interval'|'Quantiles'|'Fisher_Jenks']legend=True,#是否显示图例legend_kwds={"loc": "lower left"},#图例的位置cmap='Pastel1',  # 色带的选择edgecolor='k')for n, i in enumerate(reg03['coords']):plt.text(i[0] - 0.13, i[1], reg03['area_name'][n])plt.title(cal[1])plt.grid(True, alpha=0.5)
plt.savefig('./images/河南省2018年经济组合拼接图__Pastel1_Quantiles.png', dpi=300)
  1. 结尾
    喜欢的朋友们可以点个关注,后续将持续更新,精彩无限^ - ^

http://chatgpt.dhexx.cn/article/bXQrKJEF.shtml

相关文章

Python绘制地图

效果图: 代码如下: from pyecharts.charts import Map from pyecharts.options import VisualMapOptsmap Map()data [("北京市", 99),("上海市", 199),("湖南省", 299),("台湾省", 399),("广东省"…

Tableau地图绘制

不识庐山真面目,只缘身在此山中。 ——苏轼《题西林壁》 文章目录 前言一、选择具有地理位置属性的维度二、调整地图样式三、选择指标及其展示样式四、地图绘制小贴士总结 前言 当我们的数据涉及到国家或者地区等维度时,可以考虑使用地图的形式展示指标…

Tableau6——地图绘制

文章目录 一,填充地图二,多维地图三,混合地图 一,填充地图 要求:各省市售电量地图 首先,转换地理角色,将省市右键单击——》地理角色——》州/省/市/自治区 第二,双击省份&#xff…

R语言-地图绘制的思路

R中的画地图的思路有三种,一种是利用包里GIS方面的数据,在R中直接画出来,第二种是从其他地方拿到数据,在R中通过某些包解析后再展现成,第三种就是直接把别人的图拿过来,自己再添加或去掉自己需要或不需要的…

地形图绘制

作者简介 勾蒙蒙,R语言资深爱好者。 个人公众号: R语言及生态系统服务。 前文传送门: 脏数据-数据量纲差异 在写论文或者是做学术PPT的时候,多数人都倾向于将科研图片做出不一样的效果,集“高大上”于一体&#xff0…

gma 地理空间绘图:(1)绘制简单的世界地图-1.地图绘制与细节调整

了解 gma gma 是什么? gma 是一个基于 Python 的地理、气象数据快速处理和数据分析函数包(Geographic and Meteorological Analysis,gma)。gma 网站:地理与气象分析库。 gma 的主要功能有哪些? 气候气象&a…

ArcGIS地图制图

个人学习笔记,仅供学习交流。 参考书籍:《ArcGIS从0到1》 文章目录 专题图的制作一般专题单一符号类别专题数量专题柱状图(直方图) 符号匹配专题两个面图层覆盖专题设置行政区边界线色带制作 点符号的制作线面符号的制作线符号制作…

R语言绘制地图

R绘制地图的话,大多数用到的包都是maptools,用来读取phd文件,phd文件需要自己提前下载到工作目录,但是大多数phd文件都不能精确到市区。只能绘制声级,国家级和世界地图。 本文以武汉是举例。首先在下列网站地图选择器…

地图区域绘制

背景 需要实现地图区域绘制,并能提供给业务实现联动交互,可以按照省市县进行下钻,地图样式如下: 绘制实现方式 对于这种简约地图区域的绘制,需要提供区域的geo json文件,做地图的公司已经提供这种数据&…

ArcGIS:如何简单地制作一幅专题地图?

目录 01 加载原始数据 02 简单看一下属性表 03 对地块的人口密度用颜色进行分级显示 04 切换到布局视图 05 输出的大小,方向等设置 06 布局视图下的要素编辑 07 插入标题 08 对标题的大小颜色等进行编辑 09 插入图例 10 插入指北针 11 插入比例尺 12 调…

地图之美(地图制图)

开篇 地图学是研究地图的理论、编制技术与应用方法的科学。 现阶段对地图学的定义是:研究地理信息的表达、处理和传输的理论和方法,以地理信息可视化为核心,探讨地图的制作技术和使用方法的学科。 从地图本身概念出发,地图是将客…

在地图上绘制路线图

最近做个项目,官方给了车的一些经纬度数据,为了看的更清楚,需要把数据标注在地图上 想到了两套方案,第一种采用python的folium库 结果遇到问题,数据一多,绘画出来的速度很慢,而且它的某JS插件还…

python绘图——地图

地图相关绘图——basemap 参考1 安装 已安装anaconda的情况,运行一下代码 conda install basemap绘制地图 需导入的包 # 导入需要的包 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap绘制简单地图&#xff1a…

【地图自学系列】二、怎么画地图

怎么画地图 前言一、地球什么样二、怎么画(坐标系)1.地理坐标系和投影坐标系1.1 地理坐标系1.2 投影坐标系 2.国内常用坐标系3.试试能不能解释这些问题3.1 地理坐标系和投影坐标系的区别?3.2 有地理坐标系后,为什么还需要投影坐标…

pyecharts 地图绘制

环境描述 win11 jupyter notebook 目标效果 世界地图按数据进行分级着色;最终效果图如下: pyecharts 绘制地图时注意点 可以实现目标地图绘制效果的python库很多,这里用的是pyecharts,具体可百度。 最终结果如何以图片形式…

【Python】pyecharts 模块 ⑤ ( 地图绘制 | pyecharts 地图绘制步骤 | 为地图进行全局配置 )

文章目录 一、pyecharts 地图绘制1、pyecharts 地图绘制步骤2、代码示例 - pyecharts 地图绘制3、代码示例 - 为地图进行全局配置 pyecharts 画廊网站 : https://gallery.pyecharts.org/#/ 在该网站可查看官方示例 一、pyecharts 地图绘制 1、pyecharts 地图绘制步骤 首先 , 导…

地图轨迹图怎么做?可以自己绘制路线的地图

地图轨迹图是一种用于表示某个物体在某段时间内的移动轨迹的图表。它可以帮助我们更好地理解物体的移动轨迹,从而更好地分析和研究物体的移动轨迹。 地图轨迹图的制作需要以下几个步骤: 1.准备数据:首先,需要准备好物体的移动轨迹…

聊一聊我常用的6种绘制地图的方法

来源:萝卜大杂烩 今天来讲一讲在日常工作生活中我常用的几种绘制地图的方法,下面我将介绍下面这些可视化库的地图绘制方法,当然绘制漂亮的可视化地图还有很多优秀的类库,没有办法一一列举 pyecharts、plotly、folium、bokeh、base…

HBase数据库表的创建

实验三 HBase分布式数据库操作与编程 1、HBase Shell数据库表创建 【实验内容】 根据以下关系型数据库表,使用HBase Shell设计并创建适宜的HBase数据表。 2、创建表以及插入学生信息数据 (1)、启动Hadoop (2)、启…

Hbase笔记 —— 利用JavaAPI的方式操作Hbase数据库(往hbase的表中批量插入数据)

目录 直接在main函数中执行语句借助Test来运行方法删除表修改表结构列出来所有的表插入一条数据获取一行数据创建表批量读取文件中的数据&#xff0c;并且批量插入表中获取一组数据的值利用CellUtil改善读取数据方式 导入依赖 <dependency><groupId>org.apache.hba…