def get_report_stat(self, doc: Printer): doc.add_heading( "Эталон {}. Фактор {}".format(self.std.name, self.factor_name), 0) doc.add_heading( "Результат статистического анализа распределения расстояний фактор-образцов", 1) report_stats(self.stat, doc)
def get_report_ntest(self, doc: Printer): doc.add_heading( "Эталон {}. Фактор {}".format(self.std.name, self.factor_name), 0) doc.add_heading( "Результаты тестирования нормальности распределения расстояний фактор-образцов", 1) report_ntest(self.ntest, doc)
def dialog_sample_std(self, factor): fname = dialog_save_report("{} {}".format( self.sample.display_file(factor), self.std.display_file())) if not fname: return if factor == FACTORS_ALL: Printer("doc", self.report.get_report).print(fname) else: Printer("doc", self.reports[factor].get_report).print(fname)
def dialog_std_sample(self, factor): fname = dialog_save_report("Эталон {} {}".format( self.std.name, self.sample.display_file(factor))) if not fname: return if factor == FACTORS_ALL: Printer('doc', self.report.get_report).print(fname) else: Printer('doc', self.reports[factor].get_report).print(fname)
def save_report(self): factor = QDialogStds.settings(self, get_stds=False) if factor is None: return fname = dialog_save_report("{} {}".format( Sample.display_file_group(factor), self.std.display_file())) if not fname: return if factor == FACTORS_ALL: Printer("doc", self.report.get_report).print(fname) else: Printer("doc", self.reports[factor].get_report).print(fname)
def report_ntest(report, doc: Printer): res_ok = "пройден" res_nok = "не пройден" shapiro = report["shapiro"] doc.add_paragraph("Тест нормальности Шапиро-Вилка: {}".format(res_ok if shapiro["res"] else res_nok)) agostino = report["agostino"] doc.add_paragraph("Тест нормальности Д'Агостино и Пирсона: из {0} прогонов доля {1}/{0} = {2:.2f} отклоняет " "гипотезу о нормальности на уровне отклонения {3}" .format(agostino["num_tests"], agostino["num_rejects"], agostino["ratio"], agostino["alpha"])) ks = report["ks"] doc.add_paragraph("Тест нормальности Колмогорова-Смирнова: из {0} прогонов доля {1}/{0} = {2:.2f} отклоняет " "гипотезу о нормальности на уровне отклонения {3}" .format(ks["num_tests"], ks["num_rejects"], ks["ratio"], ks["alpha"])) if report['qq'] and doc.destination == "doc": img = plot_image(test_normal_plot, report) doc.add_paragraph("QQ-тест:") doc.add_picture(img, width=Cm(12.5))
def save_report_group(self): factor, stds = QDialogStds.settings(self, get_stds=True, std_main=self.std.name) if factor is None: return fname = dialog_save_report("{} Группа эталонов".format( Sample.display_file_group(factor))) if not fname: return stds = [Standard.standards[std] for std in stds] if factor == FACTORS_ALL: report = MulSamplesMulStandards(self.samples, stds) else: report = MulFactorSamplesMulStandards(self.samples, factor, stds) Printer("doc", report.get_report).print(fname)
def save_report_group(self): factor, stds = QDialogStds.settings(self, get_stds=True, std_main=self.std.name) if factor is None: return if not len(stds): return if len(stds) == 1: self.dialog_std_sample(factor) else: fname = dialog_save_report("Группа эталонов {}".format( self.sample.display_file(factor))) stds = [Standard.standards[std] for std in stds] if not fname: return if factor == FACTORS_ALL: report = MulStandardsSample(stds, self.sample) else: report = MulStandardsFactorSample(stds, self.sample, factor) Printer('doc', report.get_report).print(fname)
def get_report_stat_apl(self, doc: Printer): doc.add_heading("Фактор {}. Эталон {}".format(self.factor_name, self.std.name), 0) doc.add_heading( "Результат статистического анализа распределения расстояний от максимумов амплитуд значений эталона", 1) report_stats(self.stat_apl, doc)
def get_report(self, doc: Printer): doc.add_heading( "Группа эталонов. {}".format(Sample.display_file_group( self.factor)), 0) doc.add_heading( "Распределение средних значений фактор-образцов {}".format( self.factor_name), 1) for std, ml in zip(self.stds, self.max_list): doc.add_heading("Для эталона {}".format(std.name), 2) doc.add_paragraph(str_arr(ml)) doc.add_heading( "Результаты визуального анализа распределений средних значений фактор-образцов {}" .format(self.factor_name), 1) for std, va in zip(self.stds, self.va): doc.add_heading("Для эталона {}".format(std.name), 2) doc.add_picture(va) doc.add_heading( "Результаты статистического анализа распределений средних значений фактор-образцов {}" .format(self.factor_name), 1) for std, stat in zip(self.stds, self.stat): doc.add_heading("Для эталона {}".format(std.name), 2) report_stats(stat, doc) doc.add_heading( "Результаты тестирования нормальности распределений средних значений фактор-образцов {}" .format(self.factor_name), 1) for std, ntest in zip(self.stds, self.ntest): doc.add_heading("Для эталона {}".format(std.name), 2) report_ntest(ntest, doc)
def report_std(std: Standard, doc: Printer): doc.add_heading("Эталон {}".format(std.name), 1) doc.add_paragraph("Количество значений равно = {}".format(len(std.data))) doc.add_paragraph(str_arr(std.data)) doc.add_paragraph("Количество максимумов равно = {}".format(len(std.seq_max))) doc.add_paragraph(str_arr(std.seq_max))
def report_sample(sample: Sample, doc: Printer): doc.add_heading("Образец {}".format(sample.name), 1) for factor in range(4): report_sample_factor(sample, factor, doc)
def report_sample_factor(sample: Sample, factor: int, doc: Printer): doc.add_heading("Фактор-образец {}".format(FACTORS[factor].lower()), 2) doc.add_paragraph("Количество значений равно = {}".format(len(sample.data[factor]))) doc.add_paragraph(str_arr(sample.data[factor])) doc.add_paragraph("Количество максимумов равно = {}".format(len(sample.seq_max[factor]))) doc.add_paragraph(str_arr(sample.seq_max[factor]))
def report_stats(stats, doc: Printer): doc.add_paragraph("\tВыборочное среднее = {:.2f}".format(stats[0])) doc.add_paragraph("\tСтандартное отклонение = {:.2f}".format(stats[1])) doc.add_paragraph("\tДоверительный интервал = ({:.2f}, {:.2f})\n".format(*stats[2]))
def get_report(self, doc: Printer): doc.add_heading("Эталон {}. Группа образцов".format(self.std.name), 0) doc.add_heading( "Распределение средних значений фактор-образцов {}".format( self.factor_name), 2) doc.add_paragraph(str_arr(self.max_list)) doc.add_heading( "Результаты визуального анализа распределений средних значений фактор-образцов {}" .format(self.factor_name), 2) doc.add_picture(self.va) doc.add_heading( "Результаты статистического анализа распределений средних значений фактор-образцов {}" .format(self.factor_name), 2) report_stats(self.stat, doc) doc.add_heading( "Результаты тестирования нормальности распределений средних значений фактор-образцов {}" .format(self.factor_name), 2) report_ntest(self.ntest, doc)
def get_report(self, doc: Printer): doc.add_heading("Группа эталонов. {}".format(self.sample_name), 0) for factor, factor_name in enumerate(FACTORS_L): doc.add_heading("Для фактора {}".format(factor_name), 1) doc.add_heading( "Последовательности расстояний от фактор-образца {}".format( factor_name), 1) for idx, std in enumerate(self.stds): doc.add_heading( "Последовательность расстояний от максимумов фактор-образца {} до ближайшего максимума эталона {}" .format(factor_name, std.name), 2) # doc.add_paragraph("Количество значений равно = {}".format(len(self.distance[idx][factor]))) doc.add_paragraph(str_arr(self.distance[idx][factor])) doc.add_heading( "Результаты визуального анализа распределения расстояний от фактор-образца {}" .format(factor_name), 1) for idx, std in enumerate(self.stds): doc.add_heading( "Результаты визуального анализа распределения расстояний до эталона {}" .format(std.name), 2) doc.add_picture(self.va[idx][factor]) doc.add_heading( "Результаты статистического анализа распределения расстояний от фактор-образца {}" .format(factor_name), 1) for idx, std in enumerate(self.stds): doc.add_heading( "Результаты статистического анализа распределения расстояний до эталона {}" .format(std.name), 2) report_stats(self.stat[idx][factor], doc) doc.add_heading( "Результаты тестирования нормальности распределения расстояний от фактор-образца {}" .format(factor_name), 1) for idx, std in enumerate(self.stds): doc.add_heading( "Результаты тестирования нормальности распределения расстояний до эталона {}" .format(std.name), 2) report_ntest(self.ntest[idx][factor], doc)
def get_report(self, doc: Printer): doc.add_heading("Группа эталонов. Группа образцов", 0) for factor, factor_name in enumerate(FACTORS_L): doc.add_heading("Для фактора {}".format(factor_name), 1) doc.add_heading( "Распределения средних значений фактор-образцов {}".format( factor_name), 1) for idx, std in enumerate(self.stds): doc.add_heading("Для эталона {}".format(std.name), 2) doc.add_paragraph("Количество значений равно = {}".format( len(self.max_list[idx][factor]))) doc.add_paragraph(str_arr(self.max_list[idx][factor])) doc.add_heading( "Результаты визуального анализа распределений средних значений фактор-образцов {}" .format(factor_name), 1) for idx, std in enumerate(self.stds): doc.add_heading("Для эталона {}".format(std.name), 2) doc.add_picture(self.va[idx][factor]) doc.add_heading( "Результаты статистического анализа распределений средних значений фактор-образцов {}" .format(factor_name), 1) for idx, std in enumerate(self.stds): doc.add_heading("Для эталона {}".format(std.name), 2) report_stats(self.stat[idx][factor], doc) doc.add_heading( "Результаты тестирования нормальности распределений средних значений фактор-образцов {}" .format(factor_name), 1) for idx, std in enumerate(self.stds): doc.add_heading("Для эталона {}".format(std.name), 2) report_ntest(self.ntest[idx][factor], doc)
def get_report(self, doc: Printer): doc.add_heading("{} {}. Эталон {}".format(self.sample_name, self.factor_name, self.std.name), 0) # Значения doc.add_heading("Последовательность расстояний от максимумов значений эталона до максимумов фактор-образца", 1) doc.add_paragraph(str_arr(self.distance)) doc.add_heading("Результат визуального анализа распределения расстояний от максимумов значений эталона", 1) doc.add_picture(self.va) doc.add_heading("Результат статистического анализа распределения расстояний от максимумов значений эталона", 1) report_stats(self.stat, doc) doc.add_heading("Результаты тестирования нормальности распределения расстояний от максимумов значений эталона", 1) report_ntest(self.ntest, doc) # Амплитуды doc.add_heading( "Последовательность расстояний от максимумов амплитуд значений эталона до максимумов фактор-образца", 1) doc.add_paragraph(str_arr(self.distance_apl)) doc.add_heading( "Результат визуального анализа распределения расстояний от максимумов амплитуд значений эталона", 1) doc.add_picture(self.va_apl) doc.add_heading( "Результат статистического анализа распределения расстояний от максимумов амплитуд значений эталона", 1) report_stats(self.stat_apl, doc) doc.add_heading( "Результаты тестирования нормальности распределения расстояний от максимумов амплитуд значений эталона", 1) report_ntest(self.ntest_apl, doc)
def get_report(self, doc: Printer): doc.add_heading("{}. Эталон {}".format(self.sample_name, self.std.name), 0) # Значения doc.add_heading("Ряды расстояний и распределения расстояний от максимумов значений эталона до ближайшего " "максимума образца", 1) for factor, xr in zip(FACTORS_L, self.distance): doc.add_paragraph( "Ряд расстояний от максимумов значений эталона до ближайшего максимума фактор-образца {}:".format(factor)) doc.add_paragraph(str_arr(xr)) doc.add_heading("Результат визуального анализа распределения расстояний от максимумов значений эталона", 1) for factor, va in zip(FACTORS_L, self.va): doc.add_heading("Результаты визуального анализа до ближайшего максимума фактор-образца {}".format(factor), 2) doc.add_picture(va) doc.add_heading("Результаты статистического анализа распределения расстояний от максимумов значений эталона", 1) for factor, stat in zip(FACTORS_L, self.stat): doc.add_heading( "Результаты статистического анализа до ближайшего максимума фактор-образца {}".format(factor), 2) report_stats(stat, doc) doc.add_heading("Результаты тестирования нормальности распределения расстояний от максимумов значений эталона", 1) for factor, ntest in zip(FACTORS_L, self.ntest): doc.add_heading("Результаты тестирования нормальности до ближайшего максимума фактор-образца {}".format(factor), 2) report_ntest(ntest, doc) # Амплитуды doc.add_heading("Ряды расстояний и распределения расстояний от максимумов амплитуд значений эталона до " "ближайшего максимума образца", 1) for factor, xr in zip(FACTORS_L, self.distance_apl): doc.add_paragraph( "Ряд расстояний от максимумов амплитуд значений эталона до ближайшего максимума фактор-образца {}:".format(factor)) doc.add_paragraph(str_arr(xr)) doc.add_heading("Результат визуального анализа распределения расстояний от максимумов амплитуд значений эталона", 1) for factor, va_apl in zip(FACTORS_L, self.va_apl): doc.add_heading("Результаты визуального анализа до ближайшего максимума фактор-образца {}".format(factor), 2) doc.add_picture(va_apl) doc.add_heading("Результаты статистического анализа распределения расстояний от максимумов амплитуд значений эталона", 1) for factor, stat_apl in zip(FACTORS_L, self.stat_apl): doc.add_heading("Результаты статистического анализа до ближайшего максимума фактор-образца {}".format(factor), 2) report_stats(stat_apl, doc) doc.add_heading( "Результаты тестирования нормальности распределения расстояний от максимумов амплитуд значений эталона", 1) for factor, ntest_apl in zip(FACTORS_L, self.ntest_apl): doc.add_heading("Результаты тестирования нормальности до ближайшего максимума фактор-образца {}".format(factor), 2) report_ntest(ntest_apl, doc)
def get_report_ntest_apl(self, doc: Printer): doc.add_heading("Фактор {}. Эталон {}".format(self.factor_name, self.std.name), 0) doc.add_heading( "Результаты тестирования нормальности распределения расстояний от максимумов амплитуд значений эталона", 1) report_ntest(self.ntest_apl, doc)
def get_report(self, doc: Printer): doc.add_heading( "Группа эталонов. {} {}".format(self.sample_name, self.factor_name), 0) doc.add_heading( "Последовательности расстояний от фактор-образца {}".format( self.factor_name), 1) for std, xr in zip(self.stds, self.distance): doc.add_heading( "Последовательность расстояний до эталона {}".format(std.name), 2) doc.add_paragraph("Количество значений равно = {}".format(len(xr))) doc.add_paragraph(str_arr(xr)) doc.add_heading( "Результаты визуального анализа распределения расстояний от фактор-образца {}" .format(self.factor_name), 1) for std, va in zip(self.stds, self.va): doc.add_heading( "Результаты визуального анализа распределения расстояний до эталона {}" .format(std.name), 2) doc.add_picture(va) doc.add_heading( "Результаты статистического анализа распределения расстояний от фактор-образца {}" .format(self.factor_name), 1) for std, stat in zip(self.stds, self.stat): doc.add_heading( "Результаты статистического анализа распределения расстояний до эталона {}" .format(std.name), 2) report_stats(stat, doc) doc.add_heading( "Результаты тестирования нормальности распределения расстояний от фактор-образца {}" .format(self.factor_name), 1) for std, ntest in zip(self.stds, self.ntest): doc.add_heading( "Результаты тестирования нормальности распределения расстояний до эталона {}" .format(std.name), 2) report_ntest(ntest, doc)