让我们说我需要整合由未知函数定义的曲线下的区域。我想使用几种方法,一种样条。 InterpolatedUnivariateSpline
非常简单但是当我希望两个轴都是对数刻度时,very strangely有效。 (情节之外的点没有引起令人毛骨悚然的抑郁)我试图
InterpolatedUnivariateSpline
我仍然无法获得适合数据的曲线,而是一条10个数量级的直线。 (x和y都有len()= 14,它们是小样本。)
import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import InterpolatedUnivariateSpline
# x and y read form csv
x_log = np.log10(x) ; fx_log = np.log10(fx)
xn = np.linspace(min(x), max(x), num=1000)
f = InterpolatedUnivariateSpline(x_log, fx_log, k=3)
yn = f(xn)
plt.plot(x, y, 'bo', xn, yn, 'r:', ms=3)
plt.xlabel(r'$\lambda$ ($\AA$)',size='12')
plt.ylabel(r'$\lambda F_\lambda (W/m^2)$ ',size='12')
plt.xscale('log')
plt.yscale('log')
plt.show()
我是否可以重新定义xn和yn以便它们也适合曲线?我试过像xx = np.log10(xn) ; yy = np.log10(yn)
这样的东西,也失败了。