from os import makedirs from pathlib import Path import matplotlib.pyplot as plt import seaborn as sns sns.set_theme() params = { "font.family": "Serif", "font.serif": "Roman", "text.usetex": True, "axes.titlesize": "large", "axes.labelsize": "large", "xtick.labelsize": "large", "ytick.labelsize": "large", "legend.fontsize": "medium", } plt.rcParams.update(params) def plot(indir, outdir): if not (path := Path(outdir)).exists(): makedirs(path) files = [ "no_burn_in.txt", "burn_in.txt", ] labels = [ "Without", "With", ] colors = [ "darkred", "seagreen", ] figure1, ax1 = plt.subplots() figure2, ax2 = plt.subplots() figure3, ax3 = plt.subplots() figure4, ax4 = plt.subplots() for file, label, color in zip(files, labels, colors): t = [] e = [] m = [] CV = [] X = [] with open(Path(indir, file)) as f: lines = f.readlines() for line in lines: l = line.strip().split(",") t.append(float(l[0])) e.append(float(l[1])) m.append(float(l[2])) CV.append(float(l[3])) X.append(float(l[4])) ax1.plot(t, e, label=label, color=color) ax2.plot(t, m, label=label, color=color) ax3.plot(t, CV, label=label, color=color) ax4.plot(t, X, label=label, color=color) ax1.set_xlabel(r"T $(J/k_{B})$") ax1.set_ylabel(r"$\langle \epsilon \rangle$ $(J)$") ax1.legend(title="Burn-in time", loc="upper right") ax2.set_xlabel(r"T $(J/k_{B})$") ax2.set_ylabel(r"$\langle |m| \rangle$ $(unitless)$") ax2.legend(title="Burn-in time", loc="upper right") ax3.set_xlabel(r"T $(J/k_{B})$") ax3.set_ylabel(r"$C_{V}$ $(k_{B})$") ax3.legend(title="Burn-in time", loc="upper right") ax4.set_xlabel(r"T $(J/k_{B})$") ax4.set_ylabel(r"$\chi$ $(1/J)$") ax4.legend(title="Burn-in time", loc="upper right") figure1.savefig(Path(outdir, "energy.pdf"), bbox_inches="tight") figure2.savefig(Path(outdir, "magnetization.pdf"), bbox_inches="tight") figure3.savefig(Path(outdir, "heat_capacity.pdf"), bbox_inches="tight") figure4.savefig(Path(outdir, "susceptibility.pdf"), bbox_inches="tight") plt.close(figure1) plt.close(figure2) plt.close(figure3) plt.close(figure4) if __name__ == "__main__": plot( "./data/hp/test_burn_in_time/", "./latex/images/test_burn_in", )