1from pathlib
import Path
3import matplotlib.pyplot
as plt
5from scipy.stats
import linregress
8def plot_phase_transition(indir, outdir):
24 figure1, ax1 = plt.subplots()
25 figure2, ax2 = plt.subplots()
26 figure3, ax3 = plt.subplots()
27 figure4, ax4 = plt.subplots()
28 figure5, ax5 = plt.subplots()
35 for file, label
in zip(files, labels):
46 with open(Path(indir, file))
as f:
49 l = line.strip().split(
",")
53 CV.append(float(l[3]))
57 Tc.append(t[X.index(max(X))])
59 ax1.plot(t, e, label=label)
60 ax2.plot(t, m, label=label)
61 ax3.plot(t, CV, label=label)
62 ax4.plot(t, X, label=label)
65 x = np.linspace(0, 100, 1001)
66 regression = linregress(L, Tc)
67 f =
lambda x: regression[0] * x + regression[1]
69 ax5.plot(x, f(x), label=f
"m = {regression[0]}")
77 figure1.savefig(Path(outdir,
"energy.pdf"))
78 figure2.savefig(Path(outdir,
"magnetization.pdf"))
79 figure3.savefig(Path(outdir,
"heat_capacity.pdf"))
80 figure4.savefig(Path(outdir,
"susceptibility.pdf"))
81 figure5.savefig(Path(outdir,
"linreg.pdf"))
90if __name__ ==
"__main__":
91 plot_phase_transition(
92 "fox_output/phase_transition/wide/10M/",
93 "../latex/images/phase_transition/fox/wide/10M/",
95 plot_phase_transition(
96 "fox_output/phase_transition/wide/1M/",
97 "../latex/images/phase_transition/fox/wide/1M/",
99 plot_phase_transition(
100 "fox_output/phase_transition/narrow/10M/",
101 "../latex/images/phase_transition/fox/narrow/10M/",
103 plot_phase_transition(
104 "output/phase_transition/",
"../latex/images/phase_transition/hp/"
106 plot_phase_transition(
107 "output/phase_transition/",
"../latex/images/phase_transition/hp/"
109 plot_phase_transition(
110 "output/phase_transition/",
111 "../latex/images/phase_transition/hp/",