pyqt加载matplotlib
时间: 2023-09-11 08:04:25 浏览: 95
可以使用PyQt库来加载并显示Matplotlib绘图。下面是一个简单的示例:
```python
import sys
import random
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个Matplotlib的Figure对象
self.fig = Figure()
# 创建一个FigureCanvas对象,用于在PyQt窗口中显示Matplotlib绘图
self.canvas = FigureCanvas(self.fig)
# 创建一个主Widget,并设置布局为垂直布局
main_widget = QWidget(self)
layout = QVBoxLayout(main_widget)
layout.addWidget(self.canvas)
# 设置主Widget为窗口的中心Widget
self.setCentralWidget(main_widget)
# 调用绘图函数
self.plot()
def plot(self):
# 在Figure上创建一个子图
ax = self.fig.add_subplot(111)
# 生成一些随机数据
x = list(range(10))
y = [random.randint(1, 10) for _ in range(10)]
# 绘制折线图
ax.plot(x, y)
# 更新绘图
self.canvas.draw()
if __name__ == "__main__":
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
```
这个示例代码创建了一个继承自QMainWindow的窗口类MainWindow,其中包含了一个继承自FigureCanvas的canvas对象,用于在PyQt窗口中显示Matplotlib的绘图结果。在plot()方法中,我们使用Matplotlib绘制了一个简单的折线图,并通过调用canvas.draw()更新绘图。
你可以运行这段代码,看到一个使用PyQt加载Matplotlib绘图的窗口。注意,你需要安装PyQt和Matplotlib库,可以使用pip命令进行安装。
阅读全文