【发布时间】:2020-07-03 02:00:29
【问题描述】:
我尝试在 matplotlib 文档和源代码中寻找这个,但找不到答案:
问题:
是否可以从Axes 或AxesImage 对象中“获取”用于vmin 和vmax 的参数(在创建时传入)? (通过ax.imshow()创建后)
所以类似于ax.get_vminmax()?
场景:
我想显示一个具有指定 vmin/vmax 的 16 位灰度 numpy 数组。所以没问题,只需要用imshow()指定vmin/vmax即可。
但我还想稍后在该图像上放置一个叠加层(使用ax.text()),它将在叠加层中显示 vmin/vmax 值。
我想使用一个通用函数来做到这一点,不需要记住之前指定的 vmin/vmax 并传递给我的“注释”函数,而是可以传递了一个 Axes,然后通过查询 Axes 对象“获取”vmin/vmax。
这只是出于代码的精妙之处,不必将一堆 args 添加到不同的函数中,而不仅仅是能够查询传入的对象本身,
谢谢! 理查德
【问题讨论】:
-
你从可映射的标量或其规范中得到它。坐标区不知道它,因为坐标区上可以有可能绘制的对象。
-
谢谢!因此,如果我已经有了轴,那么正确的方法是针对轴中的每个“图像”,然后使用 get_clim()? for a in ax.get_images(): print('这里是 vmin/max:', a.get_clim())
-
当然,或者只是在制作图像时跟踪它们。
-
酷 - 谢谢乔迪!
-
@Richard 你应该写下来作为未来访客的答案 - 对我很有帮助!
标签: python matplotlib