xlabel outside example python plot matplotlib curvesmoothing

python - outside - Trazar una línea suave con PyPlot



matplotlib title position (2)

Puede usar scipy.interpolate.spline para suavizar sus datos usted mismo:

from scipy.interpolate import spline xnew = np.linspace(T.min(),T.max(),300) #300 represents number of points to make between T.min and T.max power_smooth = spline(T,power,xnew) plt.plot(xnew,power_smooth) plt.show()

Antes de:

Después:

Tengo el siguiente script simple que traza un gráfico:

import matplotlib.pyplot as plt import numpy as np T = np.array([6, 7, 8, 9, 10, 11, 12]) power = np.array([1.53E+03, 5.92E+02, 2.04E+02, 7.24E+01, 2.72E+01, 1.10E+01, 4.70E+00]) plt.plot(T,power) plt.show()

Como es ahora, la línea va directamente de un punto a otro que se ve bien, pero podría ser mejor en mi opinión. Lo que quiero es suavizar la línea entre los puntos. En Gnuplot habría trazado con smooth cplines .

¿Hay una manera fácil de hacer esto en PyPlot? He encontrado algunos tutoriales, pero todos parecen bastante complejos.


Supongo que quiere decir curve-fitting y no anti-aliasing desde el contexto de su pregunta. PyPlot no tiene ningún soporte integrado para esto, pero puede implementar fácilmente algunos ajustes básicos de curvas, como el código que se ve here , o si está usando GuiQwt tiene un module ajuste de curvas. (También podría robar el código de SciPy para hacer esto también).