В Matplotlib графики обычно соединяют точки данных прямыми линиями. Хотя в определенных сценариях это может быть приемлемо, полученный график может выглядеть неровным или визуально непривлекательным. Эту проблему можно решить путем сглаживания линий, что приводит к более четкой и информативной визуализации.
Чтобы сгладить линии в Matplotlib, вы можете использовать возможности библиотеки SciPy. Вызвав scipy.interpolate.spline, вы можете сгенерировать функцию интерполяции, которая создаст плавную кривую, проходящую через исходные точки данных.
from scipy.interpolate import spline
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])
xnew = np.linspace(T.min(), T.max(), 300) # Define the number of points for smoothing
power_smooth = spline(T, power, xnew)
plt.plot(xnew, power_smooth)
В версиях SciPy 0.19.0 и более поздних версиях сплайн объявлен устаревшим и заменен классом BSpline. Для достижения аналогичных результатов вы можете использовать следующий код:
from scipy.interpolate import make_interp_spline, BSpline
spl = make_interp_spline(T, power, k=3) # k=3 indicates cubic spline interpolation
power_smooth = spl(xnew)
plt.plot(xnew, power_smooth)
Исходный график с прямыми линиями и сглаженный график можно сравнить для наглядности:
[До]( https://i.sstatic.net/dSLtt.png)
[После](https://i.sstatic.net/olGAh.png)
Как видно из изображений, сглаживание линий устраняет неровности, в результате чего график становится более визуально привлекательным и информативным.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3