如何使用GeoPandas绘制多个图层

时间:2019-09-03 13:47:24

标签: python pandas geopandas

我正在尝试使用geopandas在地图上绘制一些信息。我要做的第一件事是上传纽约市的形状文件:

nyc_boroughBoundaries = geopandas.read_file ("nybb_19b2")

这将返回地理数据框:

type (nyc_boroughBoundaries)

geopandas.geodataframe.GeoDataFrame

并具有一个几何列:

geometry

(POLYGON ((1012821.805786133 229228.2645874023...
(POLYGON ((970217.0223999023 145643.3322143555...
(POLYGON ((1029606.076599121 156073.8142089844...

我正在重复相同的过程以加载有关纽约市新建筑的一些信息

geo_df_NB_2018["Coordinates"]

POINT (40.62722 -73.969634)
POINT (40.764575 -73.955421)
POINT (40.525584 -74.166414)
POINT (40.742845 -73.89083100000001)
POINT (40.679859 -73.93992

然后,我尝试在一张地图中绘制两个地理数据框,并执行以下操作:

fig, ax = plt.subplots (figsize = (15,15))
geo_df_NB_2018.plot(ax = ax, alpha = 0.7, color = "pink")
nyc_boroughBoundaries.plot(ax = ax)

但是,它们显示在图中的不同部分。

enter image description here

谢谢!

1 个答案:

答案 0 :(得分:1)

您有不同的预测。它们必须相同才能一起绘制。看你的坐标,它们显然是不同的。此外,正如@steven所指出的,您已经切换了纬度和经度。先解决该问题,然后重新投影:

# convert CRS to the same as nyc_boroughBoundaries has
geo_df_NB_2018 = geo_df_NB_2018.to_crs(nyc_boroughBoundaries.crs)

fig, ax = plt.subplots(figsize=(15, 15))
geo_df_NB_2018.plot(ax=ax, alpha=0.7, color="pink")
nyc_boroughBoundaries.plot(ax=ax)