帮助我理解在PyQt小部件上放置图形的过程(以及通常使用Matplotlib)。
当我自己编写小脚本时,我只需编写plot(stuff)
,然后再编写show()
。
然而,对于较大的应用程序,或者如果我想使用子图,或者同时引发具有不同结果的多个窗口,这显然不够好。我在http://eli.thegreenplace.net/2009/01/20/matplotlib-with-pyqt-guis/,说明了很多。然而,我的想法还没有完全清楚。
因此,您有一个PyQt窗口。制作一个Canvas
Qt对象,并将其填充为matplotlib Fig
。然后你给这个图一对axes
,最后你把你想要的所有图都钉在这对轴上?
这里有一个有用的页面,它提供了matplotlib中类的概述。
从本质上讲,这个过程是:
- 创建一个可以容纳Axes实例(以及其他艺术家)的人物
- 为人物创建一个画布以将其自身绘制到
- 创建一个轴实例ax,其中可以添加绘制的线/补丁等。例如
ax.plot(range(10))
或ax.contourf(array)
我认为你的困惑来自于对斧头的理解。斧头是"容纳基本元素的矩形区域"(用于直线图)。默认情况下,无论您运行命令plt.plot(range(10))
多少次,图中都只有一个轴,尽管您可能决定使用plt.subplot
在图中设置子图,在这种情况下,图中会有许多轴实例。
HTH、