pyqt+python根据现有数据生成正态分布图
一、前言
最近需要大量的正态分布的数据,为了方便,使用python实现随机正态分布,画出理想正态分布图和实际的矩形分布,并导出到表格里面。
链接: link.
下图是用pyqt生成的窗体.py文件,通过下方代码调用窗口显示。
![以下是正态分布图主界面带尺寸的图片: ![通过复制粘贴数据将参与分析数据加入图中数据栏,并填入最大值及最小值。
带尺寸的图片:
点击运行按钮:
![在这里插入图片描述](https://img-blog.csdnimg.cn/c912346ac0034ec8886a1eb37e87e54f.png
以下代码是生成主页面代码:
resArra=[]
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(“Form”)
Form.setFixedSize(816, 614)
Form.setWindowIcon(QIcon(“./lg.ico”))
self.checkBox1 = QtWidgets.QCheckBox(Form)
self.checkBox1.setGeometry(QtCore.QRect(300, 310, 75, 23))
self.checkBox1.setObjectName("PPM")
self.checkBox1.setStyleSheet("color:White")
self.checkBox1.setChecked(False)
self.label_9 = QtWidgets.QLabel(Form)
self.label_9.setGeometry(QtCore.QRect(320, 310, 75, 23))
self.label_9.setObjectName("label_9")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(300, 350, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(Form)
self.pushButton_2.setGeometry(QtCore.QRect(300, 390, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(140, 120, 41, 16))
self.label.setObjectName("label")
self.label_10 = QtWidgets.QLabel(Form)
self.label_10.setGeometry(QtCore.QRect(320, 310, 75, 23))
self.label_10.setObjectName("label")
self.textEdit = QtWidgets.QTextEdit(Form)
self.textEdit.setGeometry(QtCore.QRect(510, 140, 150, 451))
self.textEdit.setObjectName("textEdit")
self.label_2 = QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(510, 120, 54, 12))
self.label_2.setObjectName("label_2")
self.pushButton_3 = QtWidgets.QPushButton(Form)
self.pushButton_3.setGeometry(QtCore.QRect(400, 390, 75, 23))
self.pushButton_3.setObjectName("pushButton_3")
self.label_3 = QtWidgets.QLabel(Form)
self.label_3.setGeometry(QtCore.QRect(200, 120, 41, 16))
self.label_3.setObjectName("label_3")
self.pushButton_4 = QtWidgets.QPushButton(Form)
self.pushButton_4.setGeometry(QtCore.QRect(400, 350, 75, 23))
self.pushButton_4.setObjectName("pushButton_4")
self.label_4 = QtWidgets.QLabel(Form)
self.label_4.setGeometry(QtCore.QRect(300, 180, 81, 16))
self.label_4.setObjectName("label_4")
self.lineEdit_data1_max = QtWidgets.QLineEdit(Form)
self.lineEdit_data1_max.setGeometry(QtCore.QRect(300, 210, 81, 20))
self.lineEdit_data1_max.setObjectName("lineEdit_data1_max")
self.label_5 = QtWidgets.QLabel(Form)
self.label_5.setGeometry(QtCore.QRect(400, 180, 81, 16))
self.label_5.setObjectName("label_5")
self.lineEdit_data1_min = QtWidgets.QLineEdit(Form)
self.lineEdit_data1_min.setGeometry(QtCore.QRect(400, 210, 81, 20))
self.lineEdit_data1_min.setObjectName("lineEdit_data1_min")
self.label_6 = QtWidgets.QLabel(Form)
self.label_6.setGeometry(QtCore.QRect(300, 250, 81, 16))
self.label_6.setObjectName("label_6")
self.label_9 = QtWidgets.QLabel(Form)
self.label_9.setGeometry(QtCore.QRect(0, 0, 900, 700))
self.label_9.setText("")
self.label_9.setObjectName("label_9")
self.label_9.lower()
self.label_7 = QtWidgets.QLabel(Form)
self.label_7.setGeometry(QtCore.QRect(400, 250, 81, 16))
self.label_7.setObjectName("label_7")
self.label_8 = QtWidgets.QLabel(Form)
self.label_8.setGeometry(QtCore.QRect(130, 40, 531, 41))
self.label_8.setStyleSheet("color:White")
self.label_8.setStyleSheet("font: 26pt \"方正舒体\";color: rgb(100, 149, 237);")
self.label_8.setTextFormat(QtCore.Qt.AutoText)
self.label_8.setScaledContents(False)
self.label_8.setAlignment(QtCore.Qt.AlignBottom|QtCore.Qt.AlignHCenter)
self.label_8.setWordWrap(True)
self.label_8.setObjectName("label_8")
self.plainTextEdit = QtWidgets.QPlainTextEdit(Form)
self.plainTextEdit.setGeometry(QtCore.QRect(140, 140, 80, 451))
self.plainTextEdit.setObjectName("plainTextEdit")
# self.plainTextEdit_2 = QtWidgets.QPlainTextEdit(Form)
# self.plainTextEdit_2.setGeometry(QtCore.QRect(200, 140, 71, 451))
# self.plainTextEdit_2.setObjectName("plainTextEdit_2")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Normal distribution system"))
self.pushButton.setText(_translate("Form", "正态分布"))
self.pushButton_2.setText(_translate("Form", "数据清空"))
self.label.setText(_translate("Form", "数据:"))
self.label_2.setText(_translate("Form", "进度显示:"))
self.label_10.setText(_translate("Form", ":PPM"))
self.pushButton_3.setText(_translate("Form", "进度清空"))
# self.label_3.setText(_translate("Form", "数据二:"))
self.pushButton_4.setText(_translate("Form", "关闭"))
self.label_4.setText(_translate("Form", "最大值:"))
self.label_5.setText(_translate("Form", "最小值:"))
# self.label_6.setText(_translate("Form", "数据二最大值:"))
# self.label_7.setText(_translate("Form", "数据二最小值:"))
self.label_8.setText(_translate("Form", "数据分析-正态分布"))
self.label_2.setStyleSheet("color:White")
self.label_10.setStyleSheet("color:White")
self.label_4.setStyleSheet("color:White")
self.label_5.setStyleSheet("color:White")
self.label.setStyleSheet("color:White")
movie = QMovie('gip.gif')
self.label_9.setMovie(movie)
self.label_9.setScaledContents(True) #铺满
movie.start()
self.pushButton_3.clicked.connect(self.clickButt)
self.pushButton_2.clicked.connect(self.clickButt_1)
self.pushButton_4.clicked.connect(self.clickButt_2)
self.pushButton.clicked.connect(self.clickButton)
这下主界面就搭建好啦!
另外有预测数据程序后面我会不定期更新哈哈哈
加油喽!!!