我有一个函数,它返回一个matplotlib.figure.Figure
对象给定一些参数,我想将它添加到pyplot
对象(以便pyplot.show()
显示图像)。
有没有办法做到这一点?
谢谢!
背景
我的问题看似违反直觉,这就是我需要这样做的原因。我正在开发一个使用matplotlib生成图的Python包,所以我使用的是OO matplotlib接口。
我正在编写测试(使用matplotlib.testing
,这让我可以将图像与装饰器进行比较),以确保函数返回正确的图。问题是这样的包使用类似MATLAB的接口并在pyplot对象中查找图(使用plt.get_fignums()
),然后与文件中的图像进行比较。
我可以修改matplotlib.testing
代码以满足我的需要,但使用代码似乎是一个更好的选择,即使将一个数字附加到pyplot看起来很糟糕。
答案 0 :(得分:0)
我最终使用另一种方法来解决我的测试问题。我没有使用matplotlib.testing
内置装饰器,而是使用比较图像的功能:
from matplotlib.testing.compare import compare_images
compare_images(expected='expected.png', actual='actual.png', tol=13, in_decorator=True)
如果测试成功,则返回None
;如果图像的差异大于阈值,则返回包含一些数据的字典。我将围绕该功能构建一个包装器,以使其更加友好。