pyqt5与matplotlib结合
时间: 2023-09-12 15:11:04 浏览: 141
PyQt5与Matplotlib可以结合使用以创建交互式图形界面(GUI)。下面是一个简单的示例代码,它演示了如何将Matplotlib的图表嵌入到PyQt5的窗口中:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QSizePolicy, QWidget, QVBoxLayout
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个matplotlib图形
self.figure = Figure()
self.canvas = FigureCanvas(self.figure)
# 创建窗口布局
central_widget = QWidget()
layout = QVBoxLayout(central_widget)
layout.addWidget(self.canvas)
# 设置窗口布局
self.setCentralWidget(central_widget)
# 绘制图形
self.plot()
def plot(self):
# 获取图形的子图对象
ax = self.figure.add_subplot(111)
# 绘制曲线
x = [1, 2, 3, 4, 5]
y = [3, 5, 4, 6, 7]
ax.plot(x, y)
# 更新图形
self.canvas.draw()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在此示例中,我们创建了一个名为MainWindow的PyQt5窗口,该窗口包含一个嵌入式Matplotlib图形。在plot方法中,我们使用Matplotlib绘制了简单的曲线,并使用canvas对象将其绘制到窗口中。
运行此代码,您将看到绘制的曲线出现在PyQt5窗口中。当您更改曲线数据并调用plot方法时,窗口将自动更新以显示新数据。
阅读全文