为了账号安全,请及时绑定邮箱和手机立即绑定

从轴(或图)获取QuadMesh对象

从轴(或图)获取QuadMesh对象

慕运维8079593 2021-03-18 18:19:16
我正在尝试绘制一个图,其中所有子图都共享与该答案相似的颜色条。我遇到的问题是在脚本中,我正在调用一个函数,该函数创建QuadMesh(从生成ax.pcolormesh)实例并返回与之关联的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贡献1815条经验 获得超6个赞

我不太确定这是您想要的-尤其是因为有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"可以找到答案。


查看完整回答
反对 回复 2021-03-26
  • 1 回答
  • 0 关注
  • 237 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信