forked from Barreiro14/diff
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsolgraph.py
More file actions
51 lines (47 loc) · 1.69 KB
/
solgraph.py
File metadata and controls
51 lines (47 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
'''
Esta parte abre los archivos que contienen la data para cada time step,
los unicos archivos que siempre estaran seran x y f0, para los demas hay que generar
un loop para abrirlos o hacerlo manual, planear eso una vez se termine con los calculos
'''
x = open("x.dat", "r")
f0 = open("f0.dat", "r")
f1 = open("f1.dat", "r")
#f2 = open("f2.dat", "r")
'''
Esta parte convierte la data encontrada en los archivos temporales en numpy arrays los cuales
pueden ser tomados como argumentos de funciones de matplotlib
'''
x = np.loadtxt(x)
f0 = np.loadtxt(f0)
f1 = np.loadtxt(f1)
#f2 = np.loadtxt(f2)
f = [f1] #este array toma la data que sera graficada para poder hacer loops sobre ella
'''
Esta parte solo usa las funciones plot y show de matplotlib para graficar la data obtenida,
notese que debe agregarse un plot por cada solucion fi con una leyenda que corresponda al
time-step adecuado
'''
plt.figure()
red_patch = mpatches.Patch(color='red', label='T = 0')
plt.legend(handles=[red_patch])
plt.xlabel('x')
plt.ylabel('f(x, 0)')
plt.plot(x, f0)
plt.savefig("f0.png")
'''
Este loop creara un plot en cada uno de los archivos de data y los imprimira como el multiplo de t correspondiente
siendo el multiplo de t el time-step graficado
'''
i = 1
while i < 2: #Este 2 se cambia por el numer de time-steps despues del 0 que se quieran graficar
plt.figure()
red_patch = mpatches.Patch(color='red', label='T = {}t'.format(i))
plt.legend(handles=[red_patch])
plt.xlabel('x')
plt.ylabel('f(x, {}t)'.format(i))
plt.plot(x, f[i - 1])
plt.savefig("f{}.png".format(i))
i = i + 1