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()
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).