In [1]:
%pylab inline
In [2]:
import numpy as np
import matplotlib.pylab as plt
x = np.linspace(-1, 1)
y = 1/x
plt.plot(x, y)
plt.show()
Se puede ver que los puntos más próximos al punto de discontinuidad $x=0$ estan unidos por una línea recta. Para evitar esto, asignamos el valor np.nan
(Not A Number) a uno de los valores cerca el punto de discontinuidad utilizando la función np.diff
y la funcionalidad de selección de elementos de un arreglo numpy
basada en una comparación, en este caso, seleccionamos los índices que tienen una diferencia con el consecutivo mayor a $.5$.
Dependiendo el tipo de función que queremos graficar, este umbral de $.5$ podría ser mayor o menor.
In [3]:
y[np.diff(y) > .5] = np.nan
plt.plot(x, y)
plt.show()
En resumen, asignamos el valor np.nan
a los puntos que queremos evitar que Matplotlib una este punto con el siguiente mediante una recta.
Para más información, ver el tutorial y la documentación de Matplotlib: http://matplotlib.org/users/pyplot_tutorial.html