Este documento explica cómo generar gráficas en Python utilizando la librería Matplotlib. Muestra cómo crear arrays de números entre límites usando linspace, trazar funciones como seno y coseno con diferentes colores y estilos, añadir títulos y leyendas a las gráficas, y modificar atributos como tamaño y límites de los ejes. También cubre temas como gráficas de contorno, subplots, gráficas 3D, y funciones de NumPy como eig, solve, random, sum y trace.
1. Más sobre gráficas
linspace(a,b,n) genera un array de n números entre a y b
n es entero, a y b flotantes (por defecto n=50)
linspace(2.2,3,4) → [2.2, 2.466, 2.733, 3.0 ]
2.
3. import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,10,100)
y = np.sin(x)
z=np.cos(x)
plt.plot(x,y,'r:',linewidth=4.0,label='u(t)')
plt.plot(x,1.2*z,'g--',linewidth=2.0,label='v(t)')
plt.legend(loc='best')
plt.show()
loc → localiza la leyenda.
'best' evita superposición.
4. import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,10,100)
y = np.sin(x)
z=np.cos(x)
plt.plot(x,y,'r:',linewidth=4.0,label='u(t)')
plt.plot(x,1.2*z,'g--',linewidth=2.0,label='v(t)')
plt.legend(loc='best')
plt.show()
Color y trazo → 'g--' verde a trazos, 'r:' rojo punteado
k negro, b azul
5. Título, calidad
import numpy as np
import matplotlib.pyplot as plt
t = np.linspace(0,40)
plt.figure(dpi=200)
plt.plot(t,t,'g:',linewidth=2.0,label='u(t)')
plt.plot(t,t**2,'b-',linewidth=4.0,label='x(t)') # ajuste colores
plt.plot(t,t**3/50,'r--',label='y(t)')
plt.ylabel('y',fontsize=20)
plt.legend(loc='best')
plt.xlabel('t',fontsize=20)
plt.title('Datos', fontsize=25)
plt.show()
23. Supongamos que definimos la función de Heaviside
Error
En este caso la función no actúa sobre un arreglo, está definida
para una variable usual.
24. Vectorización
Es un proceso mediante el cuál hacemos que la función aplique a
un arreglo.
Previamente hay que importar
numpy
25. Errores
En Python los números flotantes se representan con 16 dígitos
significativos.
El mayor número posible de almacenar con una variable de tipo
flotante es de orden 10308
.
El menor número positivo es 10-308
.
En el caso de los enteros, no hay límite para el número de dígitos.
El problema es que los cálculos se vuelven lentos si se usan
muchos dígitos.
26. No conviene usar
El error de redondeo podría provocar que no se verifique la
condición aunque lo correcto fuera lo contrario.
Conviene usar
27. Hay que tener cuidado en la sustracción
Ya aparece un error en el tercer dígito
28. Otras funciones de numpy
from numpy import random
a=random.rand() # número aleatorio entre 0 y 1.
A= random.rand(5,5) # matriz (5x5) , elementos entre (0,1)
B= random.randn(5,5) # idem para distribución de Gauss, varianza
# 1
print(A)
print(B)
print(a)