Move Python scripts
This commit is contained in:
@@ -1,44 +0,0 @@
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
def plot_from_file():
|
||||
files = [
|
||||
"output/burn_in_time/unordered_1_0.txt",
|
||||
"output/burn_in_time/ordered_1_0.txt",
|
||||
"output/burn_in_time/unordered_2_4.txt",
|
||||
"output/burn_in_time/ordered_2_4.txt",
|
||||
]
|
||||
labels = [
|
||||
"1.0, unordered",
|
||||
"1.0, ordered",
|
||||
"2.4, unordered",
|
||||
"2.4, ordered"
|
||||
]
|
||||
figure1, ax1 = plt.subplots()
|
||||
figure2, ax2 = plt.subplots()
|
||||
|
||||
for infile, label in zip(files, labels):
|
||||
with open(infile) as f:
|
||||
lines = f.readlines()
|
||||
|
||||
t = []
|
||||
energy = []
|
||||
magnetization = []
|
||||
for line in lines:
|
||||
items = line.strip().split(",")
|
||||
t.append(int(items[0]))
|
||||
energy.append(float(items[1]))
|
||||
magnetization.append(float(items[5]))
|
||||
|
||||
ax1.plot(t, energy, label=fr"$\langle \epsilon \rangle$ {label}")
|
||||
ax2.plot(t, magnetization, label=fr"$\langle | m | \rangle$ {label}")
|
||||
|
||||
figure1.legend()
|
||||
figure1.savefig("../latex/images/burn_in_time_energy.pdf")
|
||||
figure2.legend()
|
||||
figure2.savefig("../latex/images/burn_in_time_magnetization.pdf")
|
||||
|
||||
def main():
|
||||
plot_from_file()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,27 +0,0 @@
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
|
||||
def plot(infile, outfile):
|
||||
if not (outdir := Path(outfile).parent).exists():
|
||||
os.makedirs(outdir)
|
||||
|
||||
figure1, ax1 = plt.subplots()
|
||||
arr = []
|
||||
with open(infile) as f:
|
||||
lines = f.readlines()
|
||||
for line in lines:
|
||||
vals = line.strip().split(",")
|
||||
arr.append(float(vals[0]))
|
||||
|
||||
ax1.hist(arr, np.arange(min(arr), max(arr) + 0.02, 0.02), density=True, ec="black")
|
||||
|
||||
figure1.savefig(outfile)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
plot("output/pd_estimate/estimate_1_0.txt", "../latex/images/pd_estimate_1_0.pdf")
|
||||
plot("output/pd_estimate/estimate_2_4.txt", "../latex/images/pd_estimate_2_4.pdf")
|
||||
@@ -1,112 +0,0 @@
|
||||
from pathlib import Path
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
from scipy.stats import linregress
|
||||
|
||||
|
||||
def plot_phase_transition(indir, outdir):
|
||||
files = [
|
||||
"size_20.txt",
|
||||
"size_40.txt",
|
||||
"size_60.txt",
|
||||
"size_80.txt",
|
||||
"size_100.txt",
|
||||
]
|
||||
labels = [
|
||||
"L = 20",
|
||||
"L = 40",
|
||||
"L = 60",
|
||||
"L = 80",
|
||||
"L = 100",
|
||||
]
|
||||
|
||||
figure1, ax1 = plt.subplots()
|
||||
figure2, ax2 = plt.subplots()
|
||||
figure3, ax3 = plt.subplots()
|
||||
figure4, ax4 = plt.subplots()
|
||||
figure5, ax5 = plt.subplots()
|
||||
|
||||
# For linear regression
|
||||
L = []
|
||||
Tc = []
|
||||
size = 20
|
||||
|
||||
for file, label in zip(files, labels):
|
||||
t = []
|
||||
e = []
|
||||
m = []
|
||||
CV = []
|
||||
X = []
|
||||
|
||||
# Append the lattice size
|
||||
L.append(size)
|
||||
size += 20
|
||||
|
||||
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]))
|
||||
|
||||
# Append the critical temp for the current lattice size
|
||||
Tc.append(t[X.index(max(X))])
|
||||
|
||||
ax1.plot(t, e, label=label)
|
||||
ax2.plot(t, m, label=label)
|
||||
ax3.plot(t, CV, label=label)
|
||||
ax4.plot(t, X, label=label)
|
||||
|
||||
# Attempt linear regression
|
||||
x = np.linspace(0, 100, 1001)
|
||||
regression = linregress(L, Tc)
|
||||
f = lambda x: regression[0] * x + regression[1]
|
||||
ax5.scatter(L, Tc)
|
||||
ax5.plot(x, f(x), label=f"m = {regression[0]}")
|
||||
|
||||
figure1.legend()
|
||||
figure2.legend()
|
||||
figure3.legend()
|
||||
figure4.legend()
|
||||
figure5.legend()
|
||||
|
||||
figure1.savefig(Path(outdir, "energy.pdf"))
|
||||
figure2.savefig(Path(outdir, "magnetization.pdf"))
|
||||
figure3.savefig(Path(outdir, "heat_capacity.pdf"))
|
||||
figure4.savefig(Path(outdir, "susceptibility.pdf"))
|
||||
figure5.savefig(Path(outdir, "linreg.pdf"))
|
||||
|
||||
plt.close(figure1)
|
||||
plt.close(figure2)
|
||||
plt.close(figure3)
|
||||
plt.close(figure4)
|
||||
plt.close(figure5)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
plot_phase_transition(
|
||||
"fox_output/phase_transition/wide/10M/",
|
||||
"../latex/images/phase_transition/fox/wide/10M/",
|
||||
)
|
||||
plot_phase_transition(
|
||||
"fox_output/phase_transition/wide/1M/",
|
||||
"../latex/images/phase_transition/fox/wide/1M/",
|
||||
)
|
||||
plot_phase_transition(
|
||||
"fox_output/phase_transition/narrow/10M/",
|
||||
"../latex/images/phase_transition/fox/narrow/10M/",
|
||||
)
|
||||
plot_phase_transition(
|
||||
"output/phase_transition/", "../latex/images/phase_transition/hp/"
|
||||
)
|
||||
plot_phase_transition(
|
||||
"output/phase_transition/", "../latex/images/phase_transition/hp/"
|
||||
)
|
||||
plot_phase_transition(
|
||||
"output/phase_transition/",
|
||||
"../latex/images/phase_transition/hp/",
|
||||
)
|
||||
Reference in New Issue
Block a user