matplotlib嵌入pyqt5
时间: 2023-08-16 18:08:51 浏览: 135
要在PyQt5中嵌入Matplotlib图形,可以使用`FigureCanvas`类和`NavigationToolbar`类。以下是一个简单的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
from matplotlib.figure import Figure
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个Matplotlib图形
self.figure = Figure()
self.canvas = FigureCanvas(self.figure)
# 创建一个导航工具栏
self.toolbar = NavigationToolbar(self.canvas, self)
# 创建一个垂直布局,并将图形和工具栏添加进去
layout = QVBoxLayout()
layout.addWidget(self.canvas)
layout.addWidget(self.toolbar)
# 创建一个QWidget作为主窗口的中心部件
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
# 绘制Matplotlib图形
self.plot()
def plot(self):
# 在Matplotlib图形上绘制一些内容
ax = self.figure.add_subplot(111)
ax.plot([1, 2, 3, 4], [1, 4, 9, 16])
ax.set_title('Matplotlib Plot')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
self.canvas.draw()
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个`MainWindow`类作为主窗口,并在其中嵌入了一个Matplotlib图形。我们使用`FigureCanvas`类将Matplotlib图形添加到PyQt5窗口中,并使用`NavigationToolbar`类添加一个导航工具栏。然后,我们在`plot`方法中绘制了一个简单的Matplotlib图形。
要运行这个示例,确保你已经安装了PyQt5和Matplotlib库,并将以上代码保存在一个Python脚本文件中,然后运行该脚本即可看到嵌入了Matplotlib图形的PyQt5窗口。
阅读全文