Stuff
This commit is contained in:
59
python_scripts/animation.py
Normal file
59
python_scripts/animation.py
Normal file
@@ -0,0 +1,59 @@
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
import matplotlib
|
||||
from matplotlib.animation import FuncAnimation
|
||||
import ast
|
||||
|
||||
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)
|
||||
|
||||
wave_arr = []
|
||||
fig = plt.figure()
|
||||
ax = plt.gca()
|
||||
img = ax.imshow([[]])
|
||||
|
||||
def plot():
|
||||
with open("data/animation.txt") as f:
|
||||
lines = f.readlines();
|
||||
size = int(lines[0])
|
||||
for line in lines[1:]:
|
||||
arr = line.strip().split("\t")
|
||||
arr = np.asarray(list(map(lambda x: ((a := complex(*ast.literal_eval(x)))*a.conjugate()).real, arr)))
|
||||
|
||||
# print(sum(arr))
|
||||
arr = arr.reshape(size,size)
|
||||
wave_arr.append(arr.T)
|
||||
# print(arr)
|
||||
|
||||
# plt.imshow(arr, cmap="hot", interpolation="nearest")
|
||||
# plt.show()
|
||||
|
||||
|
||||
def animation(i):
|
||||
norm = matplotlib.cm.colors.Normalize(vmin=0, vmax=np.max(wave_arr[i]))
|
||||
img.set_norm(norm)
|
||||
img.set_data(wave_arr[i])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
plot()
|
||||
|
||||
norm = matplotlib.cm.colors.Normalize(vmin=0, vmax=np.max(wave_arr[0]))
|
||||
plt.grid(False)
|
||||
img = ax.imshow(wave_arr[0], extent=[0,1,0,1], cmap=sns.color_palette("mako", as_cmap=True), norm=norm)
|
||||
anim = FuncAnimation(fig, animation, interval=1, frames=np.arange(0,len(wave_arr)), repeat=True, blit=0)
|
||||
# plt.show()
|
||||
|
||||
anim.save("./animation.gif", writer="ffmpeg", bitrate=10000, fps=15)
|
||||
Reference in New Issue
Block a user