plt画图结合pyqt6
时间: 2023-10-22 10:21:49 浏览: 183
可以通过将PyQt6的QWidget控件和Matplotlib的FigureCanvasQTAgg绘图组件结合使用来实现在PyQt6中显示Matplotlib绘图的功能。
下面是一个简单的例子,演示如何使用PyQt6和Matplotlib绘制一个简单的折线图:
```python
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from matplotlib.backends.backend_qt6agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 设置主窗口标题和尺寸
self.setWindowTitle("PyQt6 + Matplotlib")
self.setGeometry(100, 100, 800, 600)
# 创建一个Matplotlib Figure对象
self.figure = Figure()
# 在Figure上添加一个Axes对象
self.axes = self.figure.add_subplot(111)
# 绘制一个简单的折线图
x = [1, 2, 3, 4, 5]
y = [1, 2, 3, 4, 5]
self.axes.plot(x, y)
# 创建一个Matplotlib FigureCanvas对象
self.canvas = FigureCanvas(self.figure)
# 将FigureCanvas添加到主窗口的布局中
layout = QVBoxLayout()
layout.addWidget(self.canvas)
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
if __name__ == "__main__":
# 创建PyQt6应用程序对象
app = QApplication(sys.argv)
# 创建主窗口对象
window = MainWindow()
# 显示主窗口
window.show()
# 运行应用程序
sys.exit(app.exec())
```
在这个例子中,我们创建了一个名为MainWindow的自定义QWidget控件,并在其构造函数中创建了一个Matplotlib Figure对象和一个Axes对象。我们使用这些对象绘制了一个简单的折线图,并将Figure对象传递给FigureCanvasQTAgg构造函数,创建了一个Matplotlib FigureCanvasQTAgg对象。最后,我们使用QWidget布局将FigureCanvasQTAgg对象添加到MainWindow中,并将其设置为MainWindow的中心窗口。
运行这个例子,应该可以在PyQt6窗口中看到一个简单的折线图。
阅读全文