pyqt在界面中实时显示折线图
时间: 2023-07-31 16:12:31 浏览: 105
你可以使用Matplotlib库来绘制折线图,并使用PyQt的QTimer类来定时更新图形。以下是一个示例代码:
```python
import sys
import random
import matplotlib.pyplot as plt
from PyQt5.QtWidgets import QApplication, QMainWindow, QSizePolicy
from PyQt5.QtCore import QTimer
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 设置窗口大小
self.setGeometry(100, 100, 800, 600)
# 创建一个Matplotlib图形并添加到窗口中
self.fig, self.ax = plt.subplots()
self.canvas = FigureCanvas(self.fig)
self.setCentralWidget(self.canvas)
# 设置图形参数
self.ax.set_xlim(0, 100)
self.ax.set_ylim(0, 100)
self.ax.set_xlabel('X Axis')
self.ax.set_ylabel('Y Axis')
self.line, = self.ax.plot([], [], 'r-')
# 创建一个定时器,每隔100ms更新一次图形
self.timer = QTimer()
self.timer.timeout.connect(self.update_figure)
self.timer.start(100)
def update_figure(self):
# 生成随机数据
x = list(range(100))
y = [random.randint(0, 100) for _ in range(100)]
# 更新图形
self.line.set_data(x, y)
self.canvas.draw()
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
```
这个示例程序创建了一个窗口,并在窗口中显示了一个折线图。程序通过定时器每隔100ms更新一次图形,每次更新图形时都会生成100个随机数据并将其绘制成折线图。你可以根据需要修改程序,使其满足你的要求。
阅读全文