在一个matplotlib geopandas图中缩放并保存只有兴趣中心部分的方法

9
我使用geopandascolormap编写了以下代码,绘制了一张地图:

import numpy as np

## make up some random data
df = pd.DataFrame(np.random.rand(20, 3), columns=['x', 'y', 'val'])
df['geometry'] = df.apply(lambda row: shapely.geometry.Point(row.x, row.y), axis=1)

# make it a geopandas DataFrame
gdf = gpd.GeoDataFrame(df)

## the plotting
ax = gdf.plot(column='val', colormap='hot', vmin=vmin, vmax=vmax)

# add colorbar
fig = ax.get_figure()
cax = fig.add_axes([0.9, 0.1, 0.03, 0.8])
sm = plt.cm.ScalarMappable(cmap='hot', norm=plt.Normalize(vmin=0, vmax=1))
# fake up the array of the scalar mappable. Urgh...
sm._A = []
fig.colorbar(sm, cax=cax)

然后,我得到了这个图表(数据与上面的示例不同)。

Final map of agent-based model with Taxes paid by individual firms

如您所见,感兴趣的公司位于地图中心。
我想提供一个坐标信封,重新缩放图像,保留色条和savefig()
1个回答

21

我认为你要查找的是gdf.total_bounds属性。

minx, miny, maxx, maxy = gdf.total_bounds
ax.set_xlim(minx, maxx)
ax.set_ylim(miny, maxy)

我认为这应该提供您所寻找的缩放级别。您还可以添加“pad”到每个点,以确保它们不会直接位于轴边界上。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接