使用pyqt绘制准确度折线图,并在Qgroupbox中显示,折线图总共九组数据,纵坐标是准确度,横坐标是sub
时间: 2023-06-10 09:06:14 浏览: 114
PyQt5:QtCharts 绘制折线图
4星 · 用户满意度95%
以下是一个基本的示例,使用PyQt绘制折线图并将其显示在QGroupBox中:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QGroupBox, QVBoxLayout
from PyQt5.QtChart import QChart, QChartView, QLineSeries, QValueAxis
class LineChart(QWidget):
def __init__(self, data):
super().__init__()
# 创建折线图
chart = QChart()
chart.setTitle("准确度折线图")
# 创建X轴
x_axis = QValueAxis()
x_axis.setTitleText("sub")
chart.addAxis(x_axis, 1)
# 创建Y轴
y_axis = QValueAxis()
y_axis.setRange(0, 1)
y_axis.setTitleText("准确度")
chart.addAxis(y_axis, 2)
# 添加数据到折线图
for i, d in enumerate(data):
series = QLineSeries()
series.setName("数据组{}".format(i + 1))
for j, v in enumerate(d):
series.append(j, v)
chart.addSeries(series)
series.attachAxis(x_axis)
series.attachAxis(y_axis)
# 创建图表视图
chart_view = QChartView(chart)
chart_view.setRenderHint(QPainter.Antialiasing)
# 创建QGroupBox并添加图表视图
group_box = QGroupBox()
layout = QVBoxLayout()
layout.addWidget(chart_view)
group_box.setLayout(layout)
# 设置主窗口布局和大小
main_layout = QVBoxLayout()
main_layout.addWidget(group_box)
self.setLayout(main_layout)
self.setGeometry(100, 100, 800, 600)
self.setWindowTitle("折线图")
if __name__ == '__main__':
# 假设有9组数据,每组数据有10个数
data = [[0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.0] for _ in range(9)]
app = QApplication(sys.argv)
chart = LineChart(data)
chart.show()
sys.exit(app.exec_())
```
在示例中,我们创建了一个名为LineChart的QWidget,它包含一个QGroupBox和一个QChartView。QGroupBox用于包含QChartView,并且可以用来为折线图添加标题等。QChartView用于显示折线图,并且可以使用QChart添加数据和设置轴标签等。
我们首先创建一个QChart对象,并设置其标题。然后创建X轴和Y轴,并将它们添加到图表中。接下来,我们循环遍历数据列表,并为每组数据创建一个QLineSeries对象,并将其添加到图表中。我们还将X轴和Y轴添加到每个QLineSeries对象中,以确保它们与图表正确对齐。
最后,我们使用QVBoxLayout将QGroupBox添加到QWidget中,并将QWidget显示在屏幕上。
在上面的示例中,我们使用了一个假设的数据列表,它包含9组每组10个数的数据。在实际使用中,您需要根据您的数据格式来修改代码。
阅读全文