我可以在wx.lib.plot.PlotCanvas中获得imshow()行为吗?

时间:2013-04-09 06:58:53

标签: python matplotlib wxpython

我是wxpython的新手,但是一段时间以来一直是matplotlib的用户。我正在开发一个wxpython应用程序,我希望在其中有一个带有单个面板的简单框架(实际上是一个wx.lib.plot.PlotCanvas实例)。在面板中我想显示一些数据,这是二进制数组(称为imarr)的形式,如下所示:

example of the data I would like to display 阵列将始终是形状(64,N),N可以在大约400到1200之间变化(我可以自己调整面板大小)。

要在matplotlib中执行此操作,我会使用类似:

fig=figure(figsize=(12,2))
ax=fig.add_subplot(111)
ax.set_ylim(0,63)
ax.set_xlim(0,imarr.shape[0])
ax.set_aspect('equal')
matplotlib.imshow(imarr)

但是我在wxpython中完全迷失了。我一直在研究wx.lib.plot,但除了漂亮的线条和标记绘图功能之外,似乎没有相当于imshow(或pcolor)。

我有一个(丑陋的)解决方案是使用上面的matplotlib创建一个png图像,然后使用一些wx魔法在面板上显示图像(如果这不容易,请直接设置我)。

我更喜欢在wxpython中执行此操作,以实现可移植性和一般整洁。关于如何在wx.lib.plot.PlotCanvas(或更通用的wx.Panel)上显示二进制数组的任何建议都非常有用!

1 个答案:

答案 0 :(得分:3)

为什么不将wxPython和matplotlib结合在一起?与matplotlib相比,wx.lib.plot.PlotCanvas具有有限的功能。请查看matplotlib文档中此answerexample中的示例。对不起,我没有回答你的要求,但我认为这是正确的方法。