pyqt6使用QChart画正态分布图
时间: 2023-07-11 18:12:07 浏览: 126
Qt使用QChart绘图类
以下是一个使用QChart和QChartView类绘制正态分布图的示例代码:
```python
import sys
import math
from PyQt6.QtCore import Qt
from PyQt6.QtChart import QChart, QChartView, QLineSeries, QValueAxis
from PyQt6.QtGui import QPainter
from PyQt6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个 QChart 对象
chart = QChart()
# 创建一个 QLineSeries 对象并添加到 QChart 中
series = QLineSeries()
for x in range(-50, 51):
y = 1 / (math.sqrt(2 * math.pi)) * math.exp(-(x ** 2) / 2)
series.append(x, y)
chart.addSeries(series)
# 设置坐标轴范围和标签
axis_x = QValueAxis()
axis_x.setRange(-5, 5)
axis_x.setLabelFormat("%d")
axis_y = QValueAxis()
axis_y.setRange(0, 0.5)
axis_y.setLabelFormat("%.2f")
# 将坐标轴添加到 QChart 中
chart.addAxis(axis_x, Qt.AlignmentFlag.AlignBottom)
chart.addAxis(axis_y, Qt.AlignmentFlag.AlignLeft)
series.attachAxis(axis_x)
series.attachAxis(axis_y)
# 创建一个 QChartView 对象并将 QChart 添加到其中
chart_view = QChartView(chart)
# 创建一个垂直布局并将 QChartView 添加到其中
layout = QVBoxLayout()
layout.addWidget(chart_view)
# 创建一个 QWidget 并将布局添加到其中
widget = QWidget()
widget.setLayout(layout)
# 将 QWidget 设置为主窗口的中心部件
self.setCentralWidget(widget)
if __name__ == '__main__':
app = QApplication(sys.argv)
# 创建主窗口并显示
main_window = MainWindow()
main_window.show()
sys.exit(app.exec())
```
运行代码后,将会显示一个包含正态分布曲线的窗口。图表中的坐标轴范围和标签可以根据需要进行自定义。
阅读全文