从轴(或图)获取QuadMesh对象

我正在尝试绘制一个图,其中所有子图都共享与该答案相似的颜色条。我遇到的问题是在脚本中,我正在调用一个函数,该函数创建QuadMesh(从生成ax.pcolormesh)实例并返回与之关联的Figure和Axes实例。有什么方法可以从Axes实例(或Figure实例)获取QuadMesh实例的句柄?


import matplotlib.pyplot as plt

import numpy as np


def 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,ax


fig = 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()


慕运维8079593
浏览 238回答 1
1回答

红糖糍粑

我不太确定这是您想要的-尤其是因为有4个四边形-但是您可以通过其collections属性给定AxesSubplot来找到四边形:fig.colorbar(a.collections[0], cax=cbar_ax)顺便说一下,我使用了这种探索性内省工具找到了答案: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"可以找到答案。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python