Об этом спрашивали раньше здесь , но предложенные решения не работают для моих данных.
T = np.array(['2', '5', '10', '25', '50', '100', '300'])
T = T.astype(np.float)
power=np.array([0.066666667, 0.083333333, 0.2, 0.3, 0.35, 0.333333333, 0.38333333299999994])
xnew = np.linspace(T.min(),T.max(),300)
spl = make_interp_spline(T, power, k=3)
power_smooth = spl(xnew)
plt.plot(xnew,power_smooth)
plt.show()
Этот метод сглаживает график с неправильными предсказаниями, в этом случае у меня нет значений y ниже 0,35 после 10 по оси x, но метод сглаживает график до значений даже ниже нуля между 100 и 300. В Excel опция smooth просто сглаживает график между заданными значениями и не добавляет дополнительных значений по оси y, мне было интересно, как то же самое можно применить в matplotlib.
Сглаженный сюжет в excel как хотел:
Сглаженный участок в matplotlib: