在地图上绘制点,但错误代码为“ValueError: 'box_aspect' 和 'fig_aspect' 必须为正”

Pau*_*aul 13 python matplotlib aspect-ratio

我正在尝试将点的集合绘制到华盛顿州金县的图形上。

我可以使用以下代码显示图形:

fig, ax = plt.subplots(figsize = (15,15))
kings_county.plot(ax=ax)
Run Code Online (Sandbox Code Playgroud)

这给了我图形。然后,我从加载的 csv 的纬度/经度中读取点。

df = pd.read_csv('kc_house_data_train.csv')
crs = {'init': 'epsg:4326'}
Run Code Online (Sandbox Code Playgroud)

这会将所有点放入一个新的数据框中

geometry = [Point(x,y) for x,y in zip(df.lat,df.long)]

geo_df = gpd.GeoDataFrame(df, # specifify your dataframe
                          crs = crs, # this is your coordinate system
                          geometry = geometry) # specify the geometry list we created
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时

fig, ax = plt.subplots(figsize = (40,40))
kings_county.plot(ax=ax, alpha = 0.4, color = 'grey', aspect = 'auto')
geo_df[geo_df.price >= 750000].plot(ax = ax , markersize = 20, color = 'blue',marker = 'o',label = 'pricey')
geo_df[geo_df.price < 750000].plot(ax = ax , markersize = 20, color = 'blue',marker = 'o',label = 'pricey')
plt.legend()
Run Code Online (Sandbox Code Playgroud)

它只是返回一个错误:ValueError: 'box_aspect' 和 'fig_aspect' 必须为 正 不知道为什么加载图形有效,但添加的点使其中断。

如果可以的话,只是寻求对此的理解和修复。谢谢

小智 21

我简单地设置解决了这个问题gdf.plot(aspect=1)。它在以前版本的 geopandas 中没有发生,但它突然开始发生,我认为这只是这个参数,因为它可以在您给出的错误中读取。


小智 3

我遇到了这个确切的问题,发现 Shapely 多边形 (x,y) 坐标是(经度,纬度),所以我只需在 zip 函数中切换纬度/经度顺序,一切正常。感谢该线程提供的解决方案。