【发布时间】:2015-08-14 16:08:26
【问题描述】:
我正在尝试使用上面的 x,y 坐标绘制平滑曲线。但是,我得到的图表超出了我的数据范围。我的代码的 sn-p 在这里。
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import spline
ylist = [0.36758563074352546, 0.27634194831013914, 0.22261484098939929, 0.10891089108910891, 0.31578947368421051, 0.086956521739130432, 0.27272727272727271, 0.18181818181818182, 0.0, 0.0, 0.92000000000000004, 0.0, 0.10526315789473684, 0.23333333333333334]
xlist = [0.025000000000000001, 0.075000000000000011, 0.125, 0.17500000000000002, 0.22500000000000001, 0.27500000000000002, 0.32500000000000001, 0.375, 0.42500000000000004, 0.47500000000000003, 0.52500000000000002, 0.57500000000000007, 0.625, 0.97500000000000009]
xlist_smooth = np.linspace(xlist.min(), xlist.max(), 100)
ylist_smooth = spline(xlist, ylist, xlist_smooth)
plt.plot(xlist_smooth,ylist_smooth)
我得到以下曲线作为输出
【问题讨论】:
-
您应该包含您的
import声明,以便我们能够更好地帮助您。spline函数从何而来? -
如果您将输入的 x 和 y 数据绘制在同一轴上也会很有帮助。从外观上看,您似乎在进行三次样条插值而不是平滑(即,您的“平滑”输出通过所有输入数据点),并且您的插值在 x=0.8 附近过冲。
-
投票结束:在不知道
spline的来源的情况下,不可能回答这个问题。 OP 被问及没有回答。 -
这些是我使用的导入语句。将 pandas 作为 pd 导入 numpy 作为 np 导入 matplotlib.pyplot 作为 plt 从 scipy.interpolate 导入样条
标签: python python-2.7 matplotlib scipy