""" Module for graphing """ import matplotlib.pyplot as plt import numpy as np import seaborn as sns def hist_distributivity_graph(N,RESOLUTION,seed,data): """ graphs histograms see values function in main module """ plt.clf() for name in data: print("building "+str(name)+" histogram...") xlabel= "Value" ylabel="Count" title_name= name +"\n N = "+str(N)+"\n seed = "+str(seed) graph=sns.displot(data[name], kde=True) graph.set(title=title_name) graph.set_axis_labels(xlabel,ylabel) graph.savefig(name+'_hist.png', bbox_inches='tight') return def ecdf_graph(N,RESOLUTION,seed,data): """ graphs histograms see values function in main module """ plt.clf() for name in data: print("building "+str(name)+" ecdf...") xlabel= "Value" ylabel="Cumulative Probability" title_name= name +"\n N = "+str(N)+"\n seed = "+str(seed) if N==0: title_name= name +"\n seed = "+str(seed) graph=sns.displot(data[name], kind="ecdf") graph.set(title=title_name) graph.set_axis_labels(xlabel,ylabel) graph.savefig(name+'_ecdf.png', bbox_inches='tight') return def compare_ecdf(N, RESOLUTION, seed, data): """ Create graphs superposing ecdf """ plt.clf() BW = 0.337 name = "compare_ecdf_" for e in data: name += e+"_" #subdata = {k : data[k] for k in names} print("graphing "+str(name)+"...") xlabel = "Value" ylabel = "Density" title_name="N = "+str(N)+"\n seed = "+str(seed) if N == 0: title_name = "seed = "+str(seed) graph=sns.displot(data,legend=True , kind="ecdf") graph.set(title=title_name) plt.xlabel(xlabel) plt.ylabel(ylabel) #plt.legend() plt.savefig(name+'.png', bbox_inches='tight') return def compare(N, RESOLUTION, seed, data): """ Create graphs superposing two, already generated, distributivity """ plt.clf() BW = 0.337 name = "compare_" for e in data: name += e+"_" #subdata = {k : data[k] for k in names} print("graphing "+str(name)+"...") xlabel = "Value" ylabel = "Density" title_name="N = "+str(N)+"\n seed = "+str(seed) if N == 0: title_name = "seed = "+str(seed) for e in data: graph=sns.kdeplot(data[e],legend=True,bw_adjust=BW,common_norm=False ,label=str(e)) graph.set(title=title_name) plt.xlabel(xlabel) plt.ylabel(ylabel) graph.axes.set plt.legend() plt.savefig(name+'.png', bbox_inches='tight') return def lineplot_wrap(data, xlabel, ylabel, title, iterN): plt.clf() print("graphing "+str(title)+"...") for e in data: plt.plot(iterN, data[e], marker="o", label="seed="+str(e)) #graph = sns.lineplot(data, legend=True, x=iterN) plt.title(title) plt.legend() plt.xscale('log') plt.xlabel(xlabel) plt.ylabel(ylabel) plt.savefig(title.replace(" ", "_")+".png", bbox_inches="tight") def lineplot_mean_alot(data, xlabel, ylabel, title, iterN): plt.clf() print("graphing "+str(title)+"...") for e in data: plt.plot(iterN, data[e], marker="o", alpha=0.05 , color="red") plt.plot(iterN, [0.5]*len(iterN), color="blue",linestyle='dotted') plt.title(title) plt.xscale('log') plt.xlabel(xlabel) plt.ylabel(ylabel) plt.savefig(title+".png", bbox_inches="tight")