pyqt用QWidget实现显示折线图
时间: 2024-05-09 16:20:23 浏览: 96
jQuery实现折线图的方法
以下是一个使用 PyQt5 和 Matplotlib 库实现显示折线图的示例程序:
```python
import sys
import matplotlib.pyplot as plt
from PyQt5.QtWidgets import QWidget, QApplication, QVBoxLayout
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
class LineChart(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self._fig = plt.figure(figsize=(6, 4))
self._canvas = FigureCanvas(self._fig)
self._ax = self._fig.add_subplot(111)
# 设置坐标轴标签和标题
self._ax.set_xlabel('X Label')
self._ax.set_ylabel('Y Label')
self._ax.set_title('Line Chart')
# 绘制数据
x = [1, 2, 3, 4, 5]
y = [3, 4, 2, 6, 7]
self._ax.plot(x, y)
# 布局
layout = QVBoxLayout(self)
layout.addWidget(self._canvas)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = LineChart()
window.show()
sys.exit(app.exec_())
```
程序创建了一个名为 LineChart 的 QWidget 类,该类继承自 QWidget。在类的构造函数中,首先创建了一个 6x4 大小的 Matplotlib 图形对象,并使用 FigureCanvas 类将其包装为 QWidget。
接着,设置图形坐标轴的标签和标题,并绘制了一个简单的数据折线图。最后,将 FigureCanvas 添加到 QVBoxLayout 布局中,并将该布局设置为 LineChart 的主布局。
在主函数中,创建了 QApplication 对象和 LineChart 对象,并将其显示。当用户关闭窗口时,应用程序退出。
阅读全文