首页 > 解决方案 > Pandas/Geopandas:在同一图上显示来自两个不同数据帧的纬度/经度点

问题描述

我一直在关注本教程:https ://towardsdatascience.com/geopandas-101-plot-any-data-with-a-latitude-and-longitude-on-a-map-98e01944b972并成功绘制了一张地图,但是在同一图中添加第二层点时遇到问题。我认为这是对情节如何运作的普遍误解。

以下作品:

fig,ax = plt.subplots(figsize=(15,15))
nycmap.plot(ax=ax)
geometry = [Point(xy) for xy in zip( df['LONGITUDE'], df['LATITUDE'])]
geo_df = gpd.GeoDataFrame(df, crs = {'init':'epsg:4326'}, geometry = geometry)
fig,ax = plt.subplots(figsize=(15,15))
nycmap.plot(ax = ax, alpha = 0.4, color="blue")
geo_df.plot(ax=ax, markersize=1, color = "yellow", marker = 'o', label = "permit")
plt.legend(prop={'size': 15})

好情节

现在我有第二个数据框,我想在第一个数据框之上绘制,但我不太确定如何让它工作。根据值的范围,它们将具有不同的颜色。

这是我尝试与上述代码交织在一起的内容:

geometry2 = [Point(xy) for xy in zip( df2['Longitude'], df2010['Latitude'])]
fig,ax = plt.subplots(figsize=(15,15))
geo_df2 = gpd.GeoDataFrame(df2, crs = {'init':'epsg:4326'}, geometry = geometry2)
fig,ax = plt.subplots(figsize=(15,15))
nycmap.plot(ax = ax, alpha = 0.4, color="blue")
geo_df2[geo_df2['sum'] <= 1236].plot(ax=ax, markersize=1, color = 'red', marker = 'x', label = "Below")
geo_df2[(geo_df2['sum'] > 1237) & (geo_df2['sum'] <= 1606)].plot(ax=ax, markersize=1, color = 'orange', marker = 'x', label = "Average")
geo_df2[(geo_df2['sum'] < 1607) & (geo_df2['sum'] <= 2087)].plot(ax=ax, markersize=1, color = 'green', marker = 'x', label = "Max")
plt.legend(prop={'size': 15})

有人能告诉我哪里出错了吗?它没有显示好的情节,只是空白情节的一小部分

标签: pythonpandasplotgeopandas

解决方案


推荐阅读