🚧 Adds (non-working) boxplot
This commit is contained in:
38
analyze.py
38
analyze.py
@@ -1,7 +1,14 @@
|
||||
from typing import List
|
||||
import argparse
|
||||
|
||||
import numpy as np
|
||||
import scipy.stats as stats
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-g", "--graph", action="store_true", default=False, help="Plot graph")
|
||||
args = parser.parse_args()
|
||||
graph = args.graph
|
||||
|
||||
|
||||
def analyze(name: str, data: List[np.ndarray]):
|
||||
@@ -11,8 +18,37 @@ def analyze(name: str, data: List[np.ndarray]):
|
||||
|
||||
if p > 0.05:
|
||||
print("statistically insignificant\n")
|
||||
return
|
||||
return F, p
|
||||
|
||||
print("statistically significant")
|
||||
tukey_results = stats.tukey_hsd(*data)
|
||||
print(tukey_results)
|
||||
|
||||
return F, p
|
||||
|
||||
|
||||
def plot_box(data, labels, Fs, ps, title, titles):
|
||||
if not graph:
|
||||
return
|
||||
|
||||
fig, axs = plt.subplots(2, 2, sharex=True)
|
||||
fig.suptitle(title)
|
||||
fig.set_size_inches(12, 9)
|
||||
|
||||
for i in range(2):
|
||||
for j in range(2):
|
||||
print(f"{i}x{j} giving {i * 2 + j}")
|
||||
axs[i, j].boxplot(data[i * 2 + j], labels=labels)
|
||||
axs[i, j].set_title(titles[i * 2 + j])
|
||||
|
||||
F = round(Fs[i * 2 + j], 2)
|
||||
p = round(ps[i * 2 + j], 4)
|
||||
axs[i, j].text(0.01, 0.99, f"F-stat: {F}\np-val: {p}", ha="left", va="top", transform=axs[i, j].transAxes,
|
||||
fontweight="bold")
|
||||
|
||||
avgs = np.array([a.mean() for a in data[i * 2 + j]])
|
||||
print(avgs)
|
||||
|
||||
fig.tight_layout()
|
||||
fig.show()
|
||||
plt.show()
|
||||
|
Reference in New Issue
Block a user