用qt显示折线图,代码用python编写
时间: 2023-05-31 08:02:51 浏览: 70
折线图的显示需要使用Qt中的QChart和QChartView类,同时还需要使用QLineSeries、QValueAxis和QCategoryAxis等类来设置折线数据和坐标轴等信息。下面是一个简单的用Python编写的显示折线图的例子:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout
from PyQt5.QtChart import QChart, QChartView, QLineSeries, QValueAxis, QCategoryAxis
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("折线图示例")
self.setGeometry(100, 100, 800, 600)
# 创建QWidget作为主窗口的中心区域
central_widget = QWidget(self)
self.setCentralWidget(central_widget)
# 创建折线图
chart = QChart()
chart.setTitle("折线图示例")
chart.setAnimationOptions(QChart.AllAnimations)
# 设置X轴和Y轴
axis_x = QCategoryAxis()
axis_x.append("1", 1)
axis_x.append("2", 2)
axis_x.append("3", 3)
axis_x.append("4", 4)
axis_x.append("5", 5)
axis_x.setTitleText("X轴")
axis_y = QValueAxis()
axis_y.setRange(0, 10)
axis_y.setTitleText("Y轴")
chart.addAxis(axis_x, Qt.AlignBottom)
chart.addAxis(axis_y, Qt.AlignLeft)
# 添加折线数据
series = QLineSeries()
series.append(1, 4)
series.append(2, 5)
series.append(3, 6)
series.append(4, 7)
series.append(5, 8)
chart.addSeries(series)
series.attachAxis(axis_x)
series.attachAxis(axis_y)
# 创建QChartView并将其设置为中心窗口
chart_view = QChartView(chart)
chart_view.setRenderHint(QPainter.Antialiasing)
layout = QVBoxLayout(central_widget)
layout.addWidget(chart_view)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
运行代码后会显示一个窗口,其中包含一个折线图,如下图所示:
![折线图示例](https://cdn.jsdelivr.net/gh/krislinzhao/Storage_Space/blog_images/pyqt5_chart.png)