mirror of
https://github.com/shizand/statapp.git
synced 2024-12-23 04:02:58 +03:00
feat: добавлены "Распределения" (#116)
Closes #110 Closes #111 Closes #112
This commit is contained in:
parent
ded55cb5d7
commit
981580f46d
@ -144,7 +144,6 @@ dependencies:
|
||||
- pyyaml==6.0.1
|
||||
- setuptools-scm==8.0.4
|
||||
- six==1.16.0
|
||||
- statapp==0.10.2
|
||||
- sympy==1.12
|
||||
- tomli==2.0.1
|
||||
- tomlkit==0.12.1
|
||||
|
86
statapp/distribution_window.py
Normal file
86
statapp/distribution_window.py
Normal file
@ -0,0 +1,86 @@
|
||||
import numpy as np
|
||||
from PySide2.QtWidgets import QDialog, QVBoxLayout, QComboBox
|
||||
|
||||
from statapp.polynoms.polynom_window import MplCanvas
|
||||
from statapp.utils import addIcon
|
||||
from statapp.models.utils import yxHeader
|
||||
|
||||
|
||||
class DistributionWindow(QDialog):
|
||||
def __init__(self, title: str, data: np.ndarray):
|
||||
super().__init__()
|
||||
self.setWindowTitle(title)
|
||||
addIcon(self)
|
||||
|
||||
self.layout = QVBoxLayout()
|
||||
self.setLayout(self.layout)
|
||||
|
||||
self.data = data
|
||||
self.values = yxHeader(data.shape[1])
|
||||
|
||||
self.comboBox = QComboBox()
|
||||
self.comboBox.addItems(self.values)
|
||||
self.comboBox.currentIndexChanged.connect(self.onChange)
|
||||
self.sc = self.getSc(data[:, 0])
|
||||
self.layout.addWidget(self.comboBox)
|
||||
|
||||
self.l = QVBoxLayout()
|
||||
self.l.addWidget(self.sc)
|
||||
self.layout.addLayout(self.l)
|
||||
|
||||
|
||||
def onChange(self):
|
||||
while ((child := self.l.takeAt(0)) != None):
|
||||
child.widget().deleteLater()
|
||||
self.sc = self.getSc(self.data[:, self.comboBox.currentIndex()])
|
||||
self.l.addWidget(self.sc)
|
||||
|
||||
|
||||
class UniformDistributionWindow(DistributionWindow):
|
||||
def __init__(self, data: np.array):
|
||||
super().__init__("Равномерное распределение", data)
|
||||
|
||||
def getSc(self, points):
|
||||
sc = MplCanvas(self, width=5, height=4, dpi=100)
|
||||
points = np.sort(points)
|
||||
points = np.array(
|
||||
[points[0]] +
|
||||
[pt for pt, next_pt in zip(points[:-1], points[1:]) if pt != next_pt]
|
||||
)
|
||||
differences = np.diff(points)
|
||||
inverseDifferences = 1 / differences
|
||||
for i, (start, end) in enumerate(zip(points[:-1], points[1:])):
|
||||
sc.axes.hlines(inverseDifferences[i], start, end, colors='r', linestyles='solid')
|
||||
return sc
|
||||
|
||||
|
||||
def normalDensity(x, mu, sigmaSquared):
|
||||
return 1 / np.sqrt(2 * np.pi * sigmaSquared) * np.exp(-(x - mu) ** 2 / (2 * sigmaSquared))
|
||||
|
||||
|
||||
class NormalDistributionWindow(DistributionWindow):
|
||||
def __init__(self, data: np.array):
|
||||
super().__init__("Нормальное распределение", data)
|
||||
|
||||
def getSc(self, points):
|
||||
sc = MplCanvas(self, width=5, height=4, dpi=100)
|
||||
points = np.sort(points)
|
||||
mu = np.mean(points)
|
||||
sigmaSquared = np.var(points)
|
||||
yValues = normalDensity(points, mu, sigmaSquared)
|
||||
sc.axes.plot(points, yValues)
|
||||
return sc
|
||||
|
||||
|
||||
class ExponentialDistributionWindow(DistributionWindow):
|
||||
def __init__(self, data: np.array):
|
||||
super().__init__("Экспоненциальное распределение", data)
|
||||
|
||||
def getSc(self, points):
|
||||
sc = MplCanvas(self, width=5, height=4, dpi=100)
|
||||
points = np.sort(points)
|
||||
mu = np.mean(points)
|
||||
lambdaParam = 1 / mu
|
||||
yValues = lambdaParam * np.exp(-lambdaParam * points)
|
||||
sc.axes.plot(points, yValues)
|
||||
return sc
|
@ -24,6 +24,8 @@ from PySide2.QtWidgets import QMainWindow, QMessageBox, QAction, QMenu
|
||||
|
||||
from statapp.calculations import generateXValues, generateYValues
|
||||
from statapp.constants import NUMBERS_PRECISION
|
||||
from statapp.distribution_window import NormalDistributionWindow, UniformDistributionWindow, \
|
||||
ExponentialDistributionWindow
|
||||
from statapp.generate_factor_window import GenerateFactorWindow
|
||||
from statapp.polynoms.linear_polynom_window import LinearPolynomWindow
|
||||
from statapp.mathtex_header_view import MathTexHeaderView
|
||||
@ -257,6 +259,30 @@ class MainWindow(QMainWindow):
|
||||
except Exception as error:
|
||||
onError(error)
|
||||
|
||||
@Slot()
|
||||
def on_uniformDistributionAction_triggered(self):
|
||||
try:
|
||||
dw = UniformDistributionWindow(self.model.getData())
|
||||
dw.exec()
|
||||
except Exception as error:
|
||||
onError(error)
|
||||
|
||||
@Slot()
|
||||
def on_normalDistributionAction_triggered(self):
|
||||
try:
|
||||
dw = NormalDistributionWindow(self.model.getData())
|
||||
dw.exec()
|
||||
except Exception as error:
|
||||
onError(error)
|
||||
|
||||
@Slot()
|
||||
def on_exponentialDistributionAction_triggered(self):
|
||||
try:
|
||||
dw = ExponentialDistributionWindow(self.model.getData())
|
||||
dw.exec()
|
||||
except Exception as error:
|
||||
onError(error)
|
||||
|
||||
def closeEvent(self, event):
|
||||
if self.isDataChanged:
|
||||
file = ''
|
||||
|
@ -74,10 +74,6 @@ class PolynomWindow(QDialog):
|
||||
realY = predictionResult[:, 0]
|
||||
calculatedY = predictionResult[:, 1]
|
||||
|
||||
print(xAxes)
|
||||
print(realY)
|
||||
print(calculatedY)
|
||||
|
||||
sc.axes.scatter(xAxes, realY)
|
||||
|
||||
# xnew = np.linspace(xAxes.min(), xAxes.max(), 300)
|
||||
|
@ -87,7 +87,6 @@ class TransformPolynomWindow(QDialog):
|
||||
|
||||
def on_data_changed(self):
|
||||
data = np.copy(self.data)
|
||||
print(len(data[0:]))
|
||||
for i in range(len(data[0:])):
|
||||
for j in range(1, len(data[i])):
|
||||
tr = self.model.data(self.model.createIndex(j, 0), Qt.DisplayRole)
|
||||
|
@ -101,15 +101,6 @@
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="editable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="currentText">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
@ -40,7 +40,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>22</height>
|
||||
<height>29</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="filemenu">
|
||||
@ -80,10 +80,19 @@
|
||||
<addaction name="usageaction"/>
|
||||
<addaction name="aboutmenuaction"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menu">
|
||||
<property name="title">
|
||||
<string>Распределения</string>
|
||||
</property>
|
||||
<addaction name="uniformDistributionAction"/>
|
||||
<addaction name="normalDistributionAction"/>
|
||||
<addaction name="exponentialDistributionAction"/>
|
||||
</widget>
|
||||
<addaction name="filemenu"/>
|
||||
<addaction name="generatemenu"/>
|
||||
<addaction name="analyzemenu"/>
|
||||
<addaction name="modelmenu"/>
|
||||
<addaction name="menu"/>
|
||||
<addaction name="helpmenu"/>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
@ -147,6 +156,21 @@
|
||||
<string>Использование</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="uniformDistributionAction">
|
||||
<property name="text">
|
||||
<string>Равномерное</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="normalDistributionAction">
|
||||
<property name="text">
|
||||
<string>Нормальное</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="exponentialDistributionAction">
|
||||
<property name="text">
|
||||
<string>Экспоненциальное</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
131
statapp/ui/ui_generate_factor_window.py
generated
131
statapp/ui/ui_generate_factor_window.py
generated
@ -1,111 +1,78 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2024 Maxim Slipenko, Eugene Lazurenko.
|
||||
#
|
||||
# This file is part of Statapp
|
||||
# (see https://github.com/shizand/statapp).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
# Form implementation generated from reading ui file 'statapp/ui/generate_factor_window.ui',
|
||||
# licensing of 'statapp/ui/generate_factor_window.ui' applies.
|
||||
#
|
||||
# Created: Sun Feb 11 18:12:25 2024
|
||||
# by: pyside2-uic running on PySide2 5.13.2
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
################################################################################
|
||||
## Form generated from reading UI file 'generate_factor_window.ui'
|
||||
##
|
||||
## Created by: Qt User Interface Compiler version 5.15.2
|
||||
##
|
||||
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||
################################################################################
|
||||
|
||||
from PySide2.QtCore import *
|
||||
from PySide2.QtGui import *
|
||||
from PySide2.QtWidgets import *
|
||||
|
||||
from PySide2 import QtCore, QtGui, QtWidgets
|
||||
|
||||
class Ui_GenerateFactorWindow(object):
|
||||
def setupUi(self, GenerateFactorWindow):
|
||||
if not GenerateFactorWindow.objectName():
|
||||
GenerateFactorWindow.setObjectName(u"GenerateFactorWindow")
|
||||
GenerateFactorWindow.setObjectName("GenerateFactorWindow")
|
||||
GenerateFactorWindow.resize(503, 193)
|
||||
self.gridLayout_2 = QGridLayout(GenerateFactorWindow)
|
||||
self.gridLayout_2.setObjectName(u"gridLayout_2")
|
||||
self.gridLayout = QGridLayout()
|
||||
self.gridLayout.setObjectName(u"gridLayout")
|
||||
self.label = QLabel(GenerateFactorWindow)
|
||||
self.label.setObjectName(u"label")
|
||||
font = QFont()
|
||||
self.gridLayout_2 = QtWidgets.QGridLayout(GenerateFactorWindow)
|
||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||
self.gridLayout = QtWidgets.QGridLayout()
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.label = QtWidgets.QLabel(GenerateFactorWindow)
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(12)
|
||||
self.label.setFont(font)
|
||||
|
||||
self.label.setObjectName("label")
|
||||
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
|
||||
|
||||
self.label_3 = QLabel(GenerateFactorWindow)
|
||||
self.label_3.setObjectName(u"label_3")
|
||||
self.label_3 = QtWidgets.QLabel(GenerateFactorWindow)
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(12)
|
||||
self.label_3.setFont(font)
|
||||
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
|
||||
|
||||
self.generatePushButton = QPushButton(GenerateFactorWindow)
|
||||
self.generatePushButton.setObjectName(u"generatePushButton")
|
||||
self.generatePushButton = QtWidgets.QPushButton(GenerateFactorWindow)
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(12)
|
||||
self.generatePushButton.setFont(font)
|
||||
|
||||
self.generatePushButton.setObjectName("generatePushButton")
|
||||
self.gridLayout.addWidget(self.generatePushButton, 3, 0, 1, 2)
|
||||
|
||||
self.label_2 = QLabel(GenerateFactorWindow)
|
||||
self.label_2.setObjectName(u"label_2")
|
||||
self.label_2 = QtWidgets.QLabel(GenerateFactorWindow)
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(12)
|
||||
self.label_2.setFont(font)
|
||||
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
|
||||
|
||||
self.matSpinBox = QDoubleSpinBox(GenerateFactorWindow)
|
||||
self.matSpinBox.setObjectName(u"matSpinBox")
|
||||
self.matSpinBox = QtWidgets.QDoubleSpinBox(GenerateFactorWindow)
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(12)
|
||||
self.matSpinBox.setFont(font)
|
||||
self.matSpinBox.setDecimals(5)
|
||||
self.matSpinBox.setMaximum(1000000.000000000000000)
|
||||
|
||||
self.matSpinBox.setMaximum(1000000.0)
|
||||
self.matSpinBox.setObjectName("matSpinBox")
|
||||
self.gridLayout.addWidget(self.matSpinBox, 1, 1, 1, 1)
|
||||
|
||||
self.deviationSpinBox = QDoubleSpinBox(GenerateFactorWindow)
|
||||
self.deviationSpinBox.setObjectName(u"deviationSpinBox")
|
||||
self.deviationSpinBox = QtWidgets.QDoubleSpinBox(GenerateFactorWindow)
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(12)
|
||||
self.deviationSpinBox.setFont(font)
|
||||
self.deviationSpinBox.setDecimals(5)
|
||||
self.deviationSpinBox.setMaximum(1000000.000000000000000)
|
||||
|
||||
self.deviationSpinBox.setMaximum(1000000.0)
|
||||
self.deviationSpinBox.setObjectName("deviationSpinBox")
|
||||
self.gridLayout.addWidget(self.deviationSpinBox, 2, 1, 1, 1)
|
||||
|
||||
self.typeComboBox = QComboBox(GenerateFactorWindow)
|
||||
self.typeComboBox.setObjectName(u"typeComboBox")
|
||||
self.typeComboBox = QtWidgets.QComboBox(GenerateFactorWindow)
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(12)
|
||||
self.typeComboBox.setFont(font)
|
||||
self.typeComboBox.setEditable(False)
|
||||
|
||||
self.typeComboBox.setObjectName("typeComboBox")
|
||||
self.gridLayout.addWidget(self.typeComboBox, 0, 1, 1, 1)
|
||||
|
||||
|
||||
self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
|
||||
|
||||
|
||||
self.retranslateUi(GenerateFactorWindow)
|
||||
|
||||
QMetaObject.connectSlotsByName(GenerateFactorWindow)
|
||||
# setupUi
|
||||
QtCore.QMetaObject.connectSlotsByName(GenerateFactorWindow)
|
||||
|
||||
def retranslateUi(self, GenerateFactorWindow):
|
||||
GenerateFactorWindow.setWindowTitle(QCoreApplication.translate("GenerateFactorWindow", u"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432", None))
|
||||
self.label.setText(QCoreApplication.translate("GenerateFactorWindow", u"\u0422\u0438\u043f \u0441\u0432\u044f\u0437\u0438", None))
|
||||
self.label_3.setText(QCoreApplication.translate("GenerateFactorWindow", u"\u0421\u0440\u0435\u0434\u043d\u0435\u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u043e\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435", None))
|
||||
self.generatePushButton.setText(QCoreApplication.translate("GenerateFactorWindow", u"\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c", None))
|
||||
self.label_2.setText(QCoreApplication.translate("GenerateFactorWindow", u"\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435", None))
|
||||
self.typeComboBox.setCurrentText("")
|
||||
self.typeComboBox.setPlaceholderText("")
|
||||
# retranslateUi
|
||||
GenerateFactorWindow.setWindowTitle(QtWidgets.QApplication.translate("GenerateFactorWindow", "Генерация факторов", None, -1))
|
||||
self.label.setText(QtWidgets.QApplication.translate("GenerateFactorWindow", "Тип связи", None, -1))
|
||||
self.label_3.setText(QtWidgets.QApplication.translate("GenerateFactorWindow", "Среднеквадратичное отклонение", None, -1))
|
||||
self.generatePushButton.setText(QtWidgets.QApplication.translate("GenerateFactorWindow", "Сгенерировать", None, -1))
|
||||
self.label_2.setText(QtWidgets.QApplication.translate("GenerateFactorWindow", "Математическое ожидание", None, -1))
|
||||
|
||||
|
213
statapp/ui/ui_main_window.py
generated
213
statapp/ui/ui_main_window.py
generated
@ -1,107 +1,81 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2024 Maxim Slipenko, Eugene Lazurenko.
|
||||
#
|
||||
# This file is part of Statapp
|
||||
# (see https://github.com/shizand/statapp).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
# Form implementation generated from reading ui file 'statapp/ui/main_window.ui',
|
||||
# licensing of 'statapp/ui/main_window.ui' applies.
|
||||
#
|
||||
# Created: Sun Feb 11 18:12:22 2024
|
||||
# by: pyside2-uic running on PySide2 5.13.2
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
################################################################################
|
||||
## Form generated from reading UI file 'main_window.ui'
|
||||
##
|
||||
## Created by: Qt User Interface Compiler version 5.15.2
|
||||
##
|
||||
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||
################################################################################
|
||||
|
||||
from PySide2.QtCore import *
|
||||
from PySide2.QtGui import *
|
||||
from PySide2.QtWidgets import *
|
||||
|
||||
from PySide2 import QtCore, QtGui, QtWidgets
|
||||
|
||||
class Ui_MainWindow(object):
|
||||
def setupUi(self, MainWindow):
|
||||
if not MainWindow.objectName():
|
||||
MainWindow.setObjectName(u"MainWindow")
|
||||
MainWindow.setObjectName("MainWindow")
|
||||
MainWindow.resize(800, 600)
|
||||
self.aboutmenuaction = QAction(MainWindow)
|
||||
self.aboutmenuaction.setObjectName(u"aboutmenuaction")
|
||||
self.generateYaction = QAction(MainWindow)
|
||||
self.generateYaction.setObjectName(u"generateYaction")
|
||||
self.generateXaction = QAction(MainWindow)
|
||||
self.generateXaction.setObjectName(u"generateXaction")
|
||||
self.openfileaction = QAction(MainWindow)
|
||||
self.openfileaction.setObjectName(u"openfileaction")
|
||||
self.savefileaction = QAction(MainWindow)
|
||||
self.savefileaction.setObjectName(u"savefileaction")
|
||||
self.closefileaction = QAction(MainWindow)
|
||||
self.closefileaction.setObjectName(u"closefileaction")
|
||||
self.varianceAnalysisAction = QAction(MainWindow)
|
||||
self.varianceAnalysisAction.setObjectName(u"varianceAnalysisAction")
|
||||
self.correlationAnalisisAction = QAction(MainWindow)
|
||||
self.correlationAnalisisAction.setObjectName(u"correlationAnalisisAction")
|
||||
self.linearPolynomAction = QAction(MainWindow)
|
||||
self.linearPolynomAction.setObjectName(u"linearPolynomAction")
|
||||
self.squaredPolynomAction = QAction(MainWindow)
|
||||
self.squaredPolynomAction.setObjectName(u"squaredPolynomAction")
|
||||
self.transformPolynomAction = QAction(MainWindow)
|
||||
self.transformPolynomAction.setObjectName(u"transformPolynomAction")
|
||||
self.usageaction = QAction(MainWindow)
|
||||
self.usageaction.setObjectName(u"usageaction")
|
||||
self.centralwidget = QWidget(MainWindow)
|
||||
self.centralwidget.setObjectName(u"centralwidget")
|
||||
self.gridLayout = QGridLayout(self.centralwidget)
|
||||
self.gridLayout.setObjectName(u"gridLayout")
|
||||
self.label = QLabel(self.centralwidget)
|
||||
self.label.setObjectName(u"label")
|
||||
self.label.setAlignment(Qt.AlignCenter)
|
||||
|
||||
self.centralwidget = QtWidgets.QWidget(MainWindow)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.label = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label.setObjectName("label")
|
||||
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
|
||||
|
||||
self.tableView = QTableView(self.centralwidget)
|
||||
self.tableView.setObjectName(u"tableView")
|
||||
self.tableView = QtWidgets.QTableView(self.centralwidget)
|
||||
self.tableView.setObjectName("tableView")
|
||||
self.tableView.verticalHeader().setVisible(False)
|
||||
|
||||
self.gridLayout.addWidget(self.tableView, 1, 0, 1, 1)
|
||||
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QMenuBar(MainWindow)
|
||||
self.menubar.setObjectName(u"menubar")
|
||||
self.menubar.setGeometry(QRect(0, 0, 800, 22))
|
||||
self.filemenu = QMenu(self.menubar)
|
||||
self.filemenu.setObjectName(u"filemenu")
|
||||
self.generatemenu = QMenu(self.menubar)
|
||||
self.generatemenu.setObjectName(u"generatemenu")
|
||||
self.analyzemenu = QMenu(self.menubar)
|
||||
self.analyzemenu.setObjectName(u"analyzemenu")
|
||||
self.modelmenu = QMenu(self.menubar)
|
||||
self.modelmenu.setObjectName(u"modelmenu")
|
||||
self.helpmenu = QMenu(self.menubar)
|
||||
self.helpmenu.setObjectName(u"helpmenu")
|
||||
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 29))
|
||||
self.menubar.setObjectName("menubar")
|
||||
self.filemenu = QtWidgets.QMenu(self.menubar)
|
||||
self.filemenu.setObjectName("filemenu")
|
||||
self.generatemenu = QtWidgets.QMenu(self.menubar)
|
||||
self.generatemenu.setObjectName("generatemenu")
|
||||
self.analyzemenu = QtWidgets.QMenu(self.menubar)
|
||||
self.analyzemenu.setObjectName("analyzemenu")
|
||||
self.modelmenu = QtWidgets.QMenu(self.menubar)
|
||||
self.modelmenu.setObjectName("modelmenu")
|
||||
self.helpmenu = QtWidgets.QMenu(self.menubar)
|
||||
self.helpmenu.setObjectName("helpmenu")
|
||||
self.menu = QtWidgets.QMenu(self.menubar)
|
||||
self.menu.setObjectName("menu")
|
||||
MainWindow.setMenuBar(self.menubar)
|
||||
self.statusbar = QStatusBar(MainWindow)
|
||||
self.statusbar.setObjectName(u"statusbar")
|
||||
self.statusbar = QtWidgets.QStatusBar(MainWindow)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
MainWindow.setStatusBar(self.statusbar)
|
||||
|
||||
self.menubar.addAction(self.filemenu.menuAction())
|
||||
self.menubar.addAction(self.generatemenu.menuAction())
|
||||
self.menubar.addAction(self.analyzemenu.menuAction())
|
||||
self.menubar.addAction(self.modelmenu.menuAction())
|
||||
self.menubar.addAction(self.helpmenu.menuAction())
|
||||
self.aboutmenuaction = QtWidgets.QAction(MainWindow)
|
||||
self.aboutmenuaction.setObjectName("aboutmenuaction")
|
||||
self.generateYaction = QtWidgets.QAction(MainWindow)
|
||||
self.generateYaction.setObjectName("generateYaction")
|
||||
self.generateXaction = QtWidgets.QAction(MainWindow)
|
||||
self.generateXaction.setObjectName("generateXaction")
|
||||
self.openfileaction = QtWidgets.QAction(MainWindow)
|
||||
self.openfileaction.setObjectName("openfileaction")
|
||||
self.savefileaction = QtWidgets.QAction(MainWindow)
|
||||
self.savefileaction.setObjectName("savefileaction")
|
||||
self.closefileaction = QtWidgets.QAction(MainWindow)
|
||||
self.closefileaction.setObjectName("closefileaction")
|
||||
self.varianceAnalysisAction = QtWidgets.QAction(MainWindow)
|
||||
self.varianceAnalysisAction.setObjectName("varianceAnalysisAction")
|
||||
self.correlationAnalisisAction = QtWidgets.QAction(MainWindow)
|
||||
self.correlationAnalisisAction.setObjectName("correlationAnalisisAction")
|
||||
self.linearPolynomAction = QtWidgets.QAction(MainWindow)
|
||||
self.linearPolynomAction.setObjectName("linearPolynomAction")
|
||||
self.squaredPolynomAction = QtWidgets.QAction(MainWindow)
|
||||
self.squaredPolynomAction.setObjectName("squaredPolynomAction")
|
||||
self.transformPolynomAction = QtWidgets.QAction(MainWindow)
|
||||
self.transformPolynomAction.setObjectName("transformPolynomAction")
|
||||
self.usageaction = QtWidgets.QAction(MainWindow)
|
||||
self.usageaction.setObjectName("usageaction")
|
||||
self.uniformDistributionAction = QtWidgets.QAction(MainWindow)
|
||||
self.uniformDistributionAction.setObjectName("uniformDistributionAction")
|
||||
self.normalDistributionAction = QtWidgets.QAction(MainWindow)
|
||||
self.normalDistributionAction.setObjectName("normalDistributionAction")
|
||||
self.exponentialDistributionAction = QtWidgets.QAction(MainWindow)
|
||||
self.exponentialDistributionAction.setObjectName("exponentialDistributionAction")
|
||||
self.filemenu.addAction(self.openfileaction)
|
||||
self.filemenu.addAction(self.savefileaction)
|
||||
self.filemenu.addAction(self.closefileaction)
|
||||
@ -114,30 +88,41 @@ class Ui_MainWindow(object):
|
||||
self.modelmenu.addAction(self.transformPolynomAction)
|
||||
self.helpmenu.addAction(self.usageaction)
|
||||
self.helpmenu.addAction(self.aboutmenuaction)
|
||||
self.menu.addAction(self.uniformDistributionAction)
|
||||
self.menu.addAction(self.normalDistributionAction)
|
||||
self.menu.addAction(self.exponentialDistributionAction)
|
||||
self.menubar.addAction(self.filemenu.menuAction())
|
||||
self.menubar.addAction(self.generatemenu.menuAction())
|
||||
self.menubar.addAction(self.analyzemenu.menuAction())
|
||||
self.menubar.addAction(self.modelmenu.menuAction())
|
||||
self.menubar.addAction(self.menu.menuAction())
|
||||
self.menubar.addAction(self.helpmenu.menuAction())
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
|
||||
QMetaObject.connectSlotsByName(MainWindow)
|
||||
# setupUi
|
||||
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||
|
||||
def retranslateUi(self, MainWindow):
|
||||
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435", None))
|
||||
self.aboutmenuaction.setText(QCoreApplication.translate("MainWindow", u"\u041e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435", None))
|
||||
self.generateYaction.setText(QCoreApplication.translate("MainWindow", u"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043e\u0442\u043a\u043b\u0438\u043a\u0430", None))
|
||||
self.generateXaction.setText(QCoreApplication.translate("MainWindow", u"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0444\u0430\u043a\u0442\u043e\u0440\u0430", None))
|
||||
self.openfileaction.setText(QCoreApplication.translate("MainWindow", u"\u041e\u0442\u043a\u0440\u044b\u0442\u044c", None))
|
||||
self.savefileaction.setText(QCoreApplication.translate("MainWindow", u"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c", None))
|
||||
self.closefileaction.setText(QCoreApplication.translate("MainWindow", u"\u0417\u0430\u043a\u0440\u044b\u0442\u044c", None))
|
||||
self.varianceAnalysisAction.setText(QCoreApplication.translate("MainWindow", u"\u0414\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u043e\u043d\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437", None))
|
||||
self.correlationAnalisisAction.setText(QCoreApplication.translate("MainWindow", u"\u041a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437", None))
|
||||
self.linearPolynomAction.setText(QCoreApplication.translate("MainWindow", u"\u041b\u0438\u043d\u0435\u0439\u043d\u044b\u0439 \u043f\u043e\u043b\u0438\u043d\u043e\u043c", None))
|
||||
self.squaredPolynomAction.setText(QCoreApplication.translate("MainWindow", u"\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u044b\u0439 \u043f\u043e\u043b\u0438\u043d\u043e\u043c", None))
|
||||
self.transformPolynomAction.setText(QCoreApplication.translate("MainWindow", u"\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f", None))
|
||||
self.usageaction.setText(QCoreApplication.translate("MainWindow", u"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435", None))
|
||||
self.label.setText(QCoreApplication.translate("MainWindow", u"\u0421\u0422\u0410\u0422\u0418\u0421\u0422\u0418\u0427\u0415\u0421\u041a\u0418\u0415 \u0414\u0410\u041d\u041d\u042b\u0415", None))
|
||||
self.filemenu.setTitle(QCoreApplication.translate("MainWindow", u"\u0424\u0430\u0439\u043b", None))
|
||||
self.generatemenu.setTitle(QCoreApplication.translate("MainWindow", u"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439", None))
|
||||
self.analyzemenu.setTitle(QCoreApplication.translate("MainWindow", u"\u0410\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445", None))
|
||||
self.modelmenu.setTitle(QCoreApplication.translate("MainWindow", u"\u041c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435", None))
|
||||
self.helpmenu.setTitle(QCoreApplication.translate("MainWindow", u"\u0421\u043f\u0440\u0430\u0432\u043a\u0430", None))
|
||||
# retranslateUi
|
||||
MainWindow.setWindowTitle(QtWidgets.QApplication.translate("MainWindow", "Статистическое моделирование", None, -1))
|
||||
self.label.setText(QtWidgets.QApplication.translate("MainWindow", "СТАТИСТИЧЕСКИЕ ДАННЫЕ", None, -1))
|
||||
self.filemenu.setTitle(QtWidgets.QApplication.translate("MainWindow", "Файл", None, -1))
|
||||
self.generatemenu.setTitle(QtWidgets.QApplication.translate("MainWindow", "Генерация показателей", None, -1))
|
||||
self.analyzemenu.setTitle(QtWidgets.QApplication.translate("MainWindow", "Анализ данных", None, -1))
|
||||
self.modelmenu.setTitle(QtWidgets.QApplication.translate("MainWindow", "Моделирование", None, -1))
|
||||
self.helpmenu.setTitle(QtWidgets.QApplication.translate("MainWindow", "Справка", None, -1))
|
||||
self.menu.setTitle(QtWidgets.QApplication.translate("MainWindow", "Распределения", None, -1))
|
||||
self.aboutmenuaction.setText(QtWidgets.QApplication.translate("MainWindow", "О программе", None, -1))
|
||||
self.generateYaction.setText(QtWidgets.QApplication.translate("MainWindow", "Генерация отклика", None, -1))
|
||||
self.generateXaction.setText(QtWidgets.QApplication.translate("MainWindow", "Генерация фактора", None, -1))
|
||||
self.openfileaction.setText(QtWidgets.QApplication.translate("MainWindow", "Открыть", None, -1))
|
||||
self.savefileaction.setText(QtWidgets.QApplication.translate("MainWindow", "Сохранить", None, -1))
|
||||
self.closefileaction.setText(QtWidgets.QApplication.translate("MainWindow", "Закрыть", None, -1))
|
||||
self.varianceAnalysisAction.setText(QtWidgets.QApplication.translate("MainWindow", "Дисперсионный анализ", None, -1))
|
||||
self.correlationAnalisisAction.setText(QtWidgets.QApplication.translate("MainWindow", "Корреляционный анализ", None, -1))
|
||||
self.linearPolynomAction.setText(QtWidgets.QApplication.translate("MainWindow", "Линейный полином", None, -1))
|
||||
self.squaredPolynomAction.setText(QtWidgets.QApplication.translate("MainWindow", "Квадратичный полином", None, -1))
|
||||
self.transformPolynomAction.setText(QtWidgets.QApplication.translate("MainWindow", "Преобразования", None, -1))
|
||||
self.usageaction.setText(QtWidgets.QApplication.translate("MainWindow", "Использование", None, -1))
|
||||
self.uniformDistributionAction.setText(QtWidgets.QApplication.translate("MainWindow", "Равномерное", None, -1))
|
||||
self.normalDistributionAction.setText(QtWidgets.QApplication.translate("MainWindow", "Нормальное", None, -1))
|
||||
self.exponentialDistributionAction.setText(QtWidgets.QApplication.translate("MainWindow", "Экспоненциальное", None, -1))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user