python - PyQt 中嵌入的 Matplotlib 交互式图形

标签 python graph matplotlib pyqt4 interactive

我创建了一个简单的 python 脚本,运行时应该在 PyQT 窗口中显示嵌入式 matplotlib 图形。我用过 this嵌入和运行图的教程。除了命名约定和整体 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()

最佳答案

已经有一段时间了,但我正在处理类似的问题。我有一个 example here .也许这会有所帮助。

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

运行程序

python pyStocker.py

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

关于python - PyQt 中嵌入的 Matplotlib 交互式图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16188037/

相关文章:

graph - 检查给定图是否是另一个图的子图的算法

python - PIL 图像和 matplotlib 图为 png 图像获取饱和黑白

python - 如何使用 matplotlib 在 Axis 上显示完整的散点标记?

python - 如何使用Python循环删除包含特定单词的行?

python - 防止 16 位图像数据的自动缩放

python - Django 不匹配 url 中的 unicode

algorithm - 在无向未加权图中查找给定长度的路径数

algorithm - MST相关算法

python - matplotlib hexbin 中的零值颜色

python - 使用 python paramiko fork ssh