import matplotlib.pyplot as plt import numpy as np 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 main(): directories = { "output/simulate_2_particles/no_interaction/", "output/simulate_2_particles/with_interaction/", } titles = { "particles without interaction", "particles with interaction" } files = [ "particle_0_r.txt", "particle_0_v.txt", "particle_1_r.txt", "particle_1_v.txt", ] labels = [ r"particle 1 r", r"particle 1 v", r"particle 2 r", r"particle 2 v", ] colors = [ "lightskyblue", "deepskyblue", "salmon", "tomato", ] fig1, axs1 = plt.subplots(2,1) fig2, axs2 = plt.subplots(2,1) for i, (dir, title) in enumerate(zip(directories, titles)): for label, color, file in zip(labels, colors, files): with open(dir+file) as f: lines = f.readlines() t = np.linspace(0, 50, len(lines)) r = np.array([list(map(float, line.strip().split(","))) for line in lines]) axs1[i].plot(t, r[:,0], label=label, color=color) axs2[i].plot(t, r[:,2], label=label, color=color) axs1[i].set(xlabel=r"t $(\mu s)$", ylabel = r"z $(\mu m)$") axs1[i].legend() axs1[i].set_title(title) fig1.savefig("../latex/images/phase_space_2_particles_x.pdf") fig2.savefig("../latex/images/phase_space_2_particles_z.pdf") plt.show() if __name__ == "__main__": main()