Python 使用GeoPandas绘制地理空间数据
GeoPandas是一个广泛使用的Python库,构建在Pandas库的基础上,以支持地理空间数据。在这里,地理空间数据或地理数据描述了与地球表面上各个位置相关的信息。这些数据集有很多用途,包括地图可视化、城市规划、贸易位置分析、网络规划等。在本文中,我们将探讨GeoPandas库的工作原理,以及如何使用GeoPandas绘制地理空间数据。
在Python中使用GeoPandas绘制地理空间数据
由于GeoPandas扩展了Pandas库的功能,我们需要先了解Pandas的基础知识。
Pandas
它是一个开源的Python库,主要用于数据分析和操作。它可以通过对指定数据执行清理、过滤、分组、聚合和合并等各种操作来处理关系型和标记数据。我们可以使用GeoPandas对地理空间数据或地理数据进行这些操作。
如何使用GeoPandas绘制地理空间数据
安装所需的包
我们的第一步是通过以下命令安装GeoPandas库:
pip install geopandas
Python的GeoPandas库提供了一些内置的数据集供我们开始使用。它包括’naturalearth_cities’、’naturalearth_lowres’和’nybb’。我们将使用’nybb’数据集作为我们的文章例子。
我们首先需要使用以下命令安装数据集:
pip install geodatasets
使用GeoPandas库进行工作
让我们看一个Python程序来显示’nybb’数据集的详细信息。
方法
- 首先,使用引用名称’geopd’导入’geopandas’库。
-
然后,导入’get_path’以访问’nybb’数据集。
-
现在,使用’read_file()’方法读取数据集的信息,并将其存储在名为’maps’的变量中。
-
调用此变量以显示结果。
# importing the required packages
import geopandas as geopd
from geodatasets import get_path
# getting the path of file
path_of_file = get_path('nybb')
# reading the data of file
maps = geopd.read_file(path_of_file)
# display the data
maps
输出
数据集共有5行5列,显示了城市的几何形状、面积、长度、名称和它们的borocode。
为了直观地表示这些细节:
我们将使用内置的方法’plot()’来直观地显示这些细节。
示例
maps.plot()
输出
为了显示城市之间的明显区别,我们可以使用edgecolor绘制给定数据集。
示例
maps.plot(edgecolor = 'black')
输出
我们可以通过在plot方法中指定一个名为’column’的属性来绘制数据集的单列。
示例
maps.plot(column = 'BoroName')
输出
在这里,我们将绘制另一列,并设置边框颜色。
示例
maps.plot(column = 'Shape_Leng', edgecolor = 'red')
输出
现在,我们将绘制曼哈顿市的地图。
示例
maps = geopd.read_file(path_of_file)
# filtering the Manhattan from the dataset
newMap = maps[maps.BoroName == 'Manhattan']
newMap.plot(column = 'BoroName', edgecolor = 'red')
输出
通过使用 ‘subplots()’ 方法,我们可以在单个图中创建曼哈顿和布鲁克林两个城市的子图。
示例
# importing the required packages
import geopandas as geopd
from geodatasets import get_path
import matplotlib.pyplot as plt
path_of_file = get_path('nybb')
maps = geopd.read_file(path_of_file)
# Creating subplots of two columns
fig, (axs1, axs2) = plt.subplots(ncols = 2, figsize = (6, 4))
# filtering required cities from the dataset
newMap1 = maps[maps.BoroName == 'Manhattan']
newMap2 = maps[maps.BoroName == 'Brooklyn']
# to plot the cities
newMap1.plot(ax = axs1, column = 'BoroName', edgecolor = 'yellow')
newMap2.plot(ax = axs2, column = 'BoroName', edgecolor = 'yellow')
输出
结论
在本文中,我们学习了如何使用GeoPandas库来绘制地理空间数据。我们首先定义和解释了它的用例,然后看到了如何安装该库以供我们使用。我们使用GeoPandas库绘制了名为’nybb’的内置数据集。