Create scripts for plotting

This commit is contained in:
Cory Balaton 2023-12-19 16:09:28 +01:00
parent e22ceb04d7
commit 433ce3e47b
3 changed files with 92 additions and 0 deletions

View File

@ -0,0 +1,26 @@
import numpy as np
import matplotlib.pyplot as plt
import ast
import seaborn as sns
sns.set_theme()
def plot():
with open("data/color_map.txt") as f:
lines = f.readlines();
size = int(lines[0])
for i, line in enumerate(lines[1:]):
fig, ax = plt.subplots()
arr = line.strip().split("\t")
arr = np.asarray(list(map(lambda x: ((a := complex(*ast.literal_eval(x)))*a.conjugate()).real, arr)))
arr = arr.reshape(size,size)
ax.imshow(arr.T, interpolation="nearest")
plt.savefig(f"latex/images/color_map_{i}.pdf")
plt.close(fig)
if __name__ == "__main__":
plot()

View File

@ -0,0 +1,41 @@
import numpy as np
import matplotlib.pyplot as plt
import ast
import seaborn as sns
sns.set_theme()
def plot():
files = [
"data/screen/single_slit.txt",
"data/screen/double_slit.txt",
"data/screen/triple_slit.txt",
]
outputs = [
"latex/images/single_slit_detector.pdf",
"latex/images/double_slit_detector.pdf",
"latex/images/triple_slit_detector.pdf",
]
for file, output in zip(files, outputs):
with open(file) as f:
lines = f.readlines();
size = int(lines[0])
column = int(.8 * size)
fig, ax = plt.subplots()
arr = lines[1].strip().split("\t")
arr = np.asarray(list(map(lambda x: complex(*ast.literal_eval(x)), arr)))
arr = arr.reshape(size,size)
x = np.linspace(0,1, size)
slice = arr[column, :]
norm = 1. / np.sqrt(sum([(i*i.conjugate()).real for i in slice]))
slice *= norm
slice = np.asarray([i * i.conjugate() for i in slice])
ax.plot(x, slice)
plt.savefig(output)
plt.close(fig)
if __name__ == "__main__":
plot()

View File

@ -0,0 +1,25 @@
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
from matplotlib.animation import FuncAnimation
import ast
def plot():
with open("data/probability_deviation.txt") as f:
lines = f.readlines();
x = []
arr_narrow = []
arr_wide = []
for line in lines:
tmp = line.strip().split(",")
x.append(float(tmp[0]))
arr_narrow.append(float(tmp[1]))
arr_wide.append(float(tmp[2]))
plt.plot(x,arr_narrow)
plt.plot(x,arr_wide)
plt.savefig("latex/images/probability_deviation.pdf")
if __name__ == "__main__":
plot()