我使用样条插值来平滑时间序列,并且还想在图中添加一条水平线。但似乎有一个问题超出了我的掌握。任何帮助都会非常有帮助。这是我所拥有的:
annual = np.arange(1,21,1) l = np.array(value_list) # a list with 20 values spl = UnivariateSpline(annual,l) xs = np.linspace(1,21,200) plt.plot(xs,spl(xs),'b') plt.plot([0,len(xs)],[40,40],'r--',lw=2) pylab.ylim([0,200]) plt.show()
问题似乎与我使用[0,len(xs)]水平线绘图有关。
[0,len(xs)]
你是对的,我认为[0,len(xs)]这是让你失望。您将希望重用原始的 x 轴变量xs,并使用另一个长度相同的 numpy 数组来绘制它,其中包含您的变量。
xs
annual = np.arange(1,21,1) l = np.array(value_list) # a list with 20 values spl = UnivariateSpline(annual,l) xs = np.linspace(1,21,200) plt.plot(xs,spl(xs),'b') #####horizontal line horiz_line_data = np.array([40 for i in xrange(len(xs))]) plt.plot(xs, horiz_line_data, 'r--') ###########plt.plot([0,len(xs)],[40,40],'r--',lw=2) pylab.ylim([0,200]) plt.show()
希望能解决问题!