7

我创建了一个简单的 python 脚本,运行时应该在 PyQT 窗口中显示嵌入的 matplotlib 图。我已经使用教程来嵌入和运行图表。除了命名约定和整个 UI 中的一些差异之外,我的图表生成的完全与教程中提到的一样。

我的问题是我想让它成为一个允许缩放和拖动的交互式图表,但我想只用鼠标(点击和拖动、滚轮等)而不用工具栏(我发现它丑陋的)。

小部件类:

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()
4

1 回答 1

2

已经有一段时间了,但我正在解决类似的问题。我这里有一个例子。也许这会有所帮助。

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

运行程序

python pyStocker.py

您会看到一个小部件弹出窗口,在左上角您会看到一个TextEdit框。只需输入 GOOG 或其他一些有效的股票代码,然后按 Enter。该图表将填充股票的数据。底部的滑块实时更改图形。

于 2013-04-25T07:49:49.807 回答