PyQt5用matplotlib画图
时间: 2024-06-18 07:05:45 浏览: 143
PyQt5是一个流行的Python GUI开发框架,而matplotlib是一个功能强大的绘图库,可以创建各种类型的图形,包括折线图、散点图、条形图等。下面是使用PyQt5和matplotlib绘制图形的简单步骤:
1. 安装必要的库:PyQt5和matplotlib。
2. 导入必要的模块:`matplotlib.pyplot`和`matplotlib.backends.backend_qt5agg`。
3. 创建`QWidget`对象作为主窗口。
4. 在主窗口中创建一个`QVBoxLayout`对象,用于管理所有子控件的布局。
5. 创建一个`QMainWindow`对象,并将它设置为主窗口的子控件。
6. 创建一个`FigureCanvasQTAgg`对象,并将它添加到`QMainWindow`对象中。
7. 使用`matplotlib.pyplot`模块中的函数创建图形,并将其绘制在`FigureCanvasQTAgg`对象中。
8. 显示主窗口。
以下是一个简单的例子,演示如何使用PyQt5和matplotlib绘制一个简单的折线图:
```python
import sys
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QVBoxLayout
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建FigureCanvasQTAgg对象
self.canvas = FigureCanvas(plt.Figure())
# 绘制图形
ax = self.canvas.figure.add_subplot(111)
ax.plot([1, 2, 3, 4], [1, 4, 2, 3])
# 创建QWidget对象
widget = QWidget()
layout = QVBoxLayout(widget)
layout.addWidget(self.canvas)
# 设置主窗口
self.setCentralWidget(widget)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyMainWindow()
window.show()
sys.exit(app.exec_())
```
阅读全文