如何将matplotlib fumction与QGraphicView集成?

时间:2016-11-17 10:37:20

标签: python qt matplotlib pyqt4 pyqtgraph

我正在使用Qt Designer和PyQt4开发桌面应用程序。我需要显示一个带轮廓的图形,在python中可以使用matplotlib.pyplot.contourf。我想在QGraphicView对象中显示结果。

我试图通过在Qt-Designer中将QGraphicView推广到pygtgraph来实现。如果QGraphicView的对象名是CNOPlot,我已写过

import matplotlib.pyplot as plt
self.CNOPlot.plot(plt.contourf(xx, yy, Z,cmap=plt.cm.autumn, alpha=0.8))

在单独的窗口中输出。 我希望这是在CNOPlot中绘制的。

1 个答案:

答案 0 :(得分:0)

这是一个简短的例子:

import matplotlib.pyplot as plt
from PyQt4 import QtGui
from PyQt4.Qt import Qt
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas

class MyView(QtGui.QGraphicsView):
    def __init__(self):
        QtGui.QGraphicsView.__init__(self)

        scene = QtGui.QGraphicsScene(self)
        self.scene = scene

        figure = Figure()
        axes = figure.gca()
        axes.set_title("title")
        axes.plot(plt.contourf(xx, yy, Z,cmap=plt.cm.autumn, alpha=0.8))
        canvas = FigureCanvas(figure)
        canvas.setGeometry(0, 0, 500, 500)
        scene.addWidget(canvas)

        self.setScene(scene)