【发布时间】:2018-06-13 04:53:14
【问题描述】:
我正在研究 pyqt5,我必须使用一些 matplotlib。 我的意思是我仍然不知道如何在我的画布上显示这个?
class MyMplCanvas(FigureCanvas):
"""Ultimately, this is a QWidget (as well as a FigureCanvasAgg,
etc.)."""
def __init__(self, parent=None, width=5, height=4, dpi=100):
fig = Figure(figsize=(width, height), dpi=dpi)
self.axes = fig.add_subplot(111)
#self.compute_initial_figure(self,img)
FigureCanvas.__init__(self, fig)
self.setParent(parent)
FigureCanvas.setSizePolicy(self,
QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self)
def compute_initial_figure(self,img):
pass
class MyStaticMplCanvas(MyMplCanvas):
"""Simple canvas with a sine plot."""
def compute_initial_figure(self,img):
pattern,code,label = self.freeman(img) #iam getting this from another function
na = plt.imshow(label,cmap='Greys')
plt.plot([i[1] for i in pattern],[i[0] for i in pattern ])
plt.show()
#t = arange(0.0, 3.0, 0.01)
#s = sin(2*pi*t)
#self.axes.plot(t,s)
在我的 MainWindow 中,我只是使用一个普通的类实例:
self.sc = MyStaticMplCanvas(self.tab_2, width=2, height=2,
dpi=100)
self.sc.setGeometry(QtCore.QRect(70, 320, 300, 300))
【问题讨论】:
-
我建议您删除其中一个标签并添加
Matplotlib标签。这样你会得到更多帮助。 -
你使用的是哪个 pyqt?一个版本标签会更好。很多东西在 4 到 5 之间发生了变化。
标签: matplotlib pyqt pyqt5