慕運(yùn)維8079593
2021-03-18 18:19:16
我正在嘗試?yán)L制一個圖,其中所有子圖都共享與該答案相似的顏色條。我遇到的問題是在腳本中,我正在調(diào)用一個函數(shù),該函數(shù)創(chuàng)建QuadMesh(從生成ax.pcolormesh)實例并返回與之關(guān)聯(lián)的Figure和Axes實例。有什么方法可以從Axes實例(或Figure實例)獲取QuadMesh實例的句柄?import matplotlib.pyplot as pltimport numpy as npdef foo(subplot): data = np.random.random((100,100)) x,y = np.meshgrid(np.arange(101),np.arange(101)) fig = plt.gcf() ax = fig.add_subplot(subplot) quadmesh = ax.pcolormesh(x,y,data) return fig,axfig = plt.figure()f,a = foo(221)f,a = foo(222)f,a = foo(223)f,a = foo(224)fig.subplots_adjust(right=0.8)cbar_ax = fig.add_axes([0.85,0.15,0.05,0.7])#fig.colorbar(magic_get_quadmesh,cax=cbar_ax)plt.show()
1 回答

紅糖糍粑
TA貢獻(xiàn)1815條經(jīng)驗 獲得超6個贊
我不太確定這是您想要的-尤其是因為有4個四邊形-但是您可以通過其collections屬性給定AxesSubplot來找到四邊形:
fig.colorbar(a.collections[0], cax=cbar_ax)
順便說一下,我使用了這種探索性內(nèi)省工具找到了答案:
def describe(obj):
for key in dir(obj):
try:
val = getattr(obj, key)
except AttributeError:
continue
if callable(val):
help(val)
else:
print('{k} => {v!r}'.format(k=key, v=val))
print('-' * 80)
describe(a)
是的,它可以打印出很多輸出,但是快速搜索"quadmesh"可以找到答案。
添加回答
舉報
0/150
提交
取消