我创建了一个简单的 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/