Matplotlib交互式图形嵌入PyQt的(Matplotlib interactive grap

2019-09-01 00:19发布

我创建了一个简单的Python脚本,当运行应显示PyQt的窗口中嵌入matplotlib图。 我用这个教程中嵌入和运行图。 除了在命名约定,并在整体UI一定的差异我的图形生成完全一样的一个中提到的教程。

我的问题是,我想使这是一个交互式的图表,允许进行缩放和拖动,但我想只用鼠标(点击和拖动,滚轮等),要做到这一点,没有工具栏(因为我觉得它丑陋)。

Widget类:

class MplCanvas(FigureCanvas):
    """
    Creates a canvas on which to draw our widgets
    """
    def __init__(self):
        self.fig = Figure()
        self.ax = self.fig.add_subplot(111)

        FigureCanvas.__init__(self, self.fig)
        FigureCanvas.setSizePolicy(self, QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding)
        FigureCanvas.updateGeometry(self)

class marketdephWidget(QtGui.QWidget):
    """
    The market deph graph
    """
    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self, parent)
        self.canvas = MplCanvas()
        self.vbl = QtGui.QVBoxLayout()
        self.vbl.addWidget(self.canvas)
        self.setLayout(self.vbl)

绘图功能(按下按钮运行):

# initialize the mplwidgets
def PlotFunc(self):
    randomNumbers = random.sample(range(0, 10), 10)
    self.ui.widget.canvas.ax.clear()
    self.ui.widget.canvas.ax.plot(randomNumbers)
    self.ui.widget.canvas.draw()

Answer 1:

它已经有一段时间,但我工作的一个类似的问题。 我有一个在这里例子 。 也许这将有所帮助。

该程序正在使用PySide ,不应该是一个问题,但。

要运行程序

python pyStocker.py

你会看到一个小窗口弹出,并在左上角,你会看到一个TextEdit框。 刚进入歌或一些其他有效的股票代码,然后按回车。 该图将与股票的数据填充。 底部的滑块改变图形的实时性。



文章来源: Matplotlib interactive graph embedded in PyQt