附上matplotlib图。图形为pyplot

时间:2015-10-12 17:20:39

标签: python matplotlib

我有一个函数,它返回一个matplotlib.figure.Figure对象给定一些参数,我想将它添加到pyplot对象(以便pyplot.show()显示图像)。

有没有办法做到这一点?

谢谢!

背景

我的问题看似违反直觉,这就是我需要这样做的原因。我正在开发一个使用matplotlib生成图的Python包,所以我使用的是OO matplotlib接口。

我正在编写测试(使用matplotlib.testing,这让我可以将图像与装饰器进行比较),以确保函数返回正确的图。问题是这样的包使用类似MATLAB的接口并在pyplot对象中查找图(使用plt.get_fignums()),然后与文件中的图像进行比较。

我可以修改matplotlib.testing代码以满足我的需要,但使用代码似乎是一个更好的选择,即使将一个数字附加到pyplot看起来很糟糕。

1 个答案:

答案 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;如果图像的差异大于阈值,则返回包含一些数据的字典。我将围绕该功能构建一个包装器,以使其更加友好。