我试图绘制数据前1000点的运行平均值(每月太阳黑子数) . 我应该使用Y_k = t / 2r(从m = -r到Y_k m的r之和),其中r = 5,y_k是太阳黑子的数量 . 到目前为止我有这个 . 我已经导入了所有内置函数

if part == 'C':
    y = data[:,1]
    x = data[:,0]


    x_2 = x[:1000]
    y_Average_Sunspot = np.empty(1000,float) 

    y_Avg = y[:1000]
    x_Avg = x[:1000]

    y_n5 = (y_Avg)-5
    y_n4 = (y_Avg)-4
    y_n3 = (y_Avg)-3
    y_n2 = (y_Avg)-2
    y_n1 = (y_Avg)-1
    y_1 = (y_Avg)+1
    y_2 = (y_Avg)+2
    y_3 = (y_Avg)+3
    y_4 = (y_Avg)+4
    y_5 = (y_Avg)+5

    y_Average = (y_5)+(y_4)+(y_3)+(y_2)+(y_1)+(y_n1)+(y_n2)+(y_n3)+(y_n4)+(y_n5)+(y_Avg)

    y_Average_Sunspots = y_Average/10



    plt.plot(x_2,y,label='First Thousand Months',color='y')
    plt.plot(x_Avg, y_Average_Sunspot,label='Running Average', color='k')
    plt.xlim(0,1000)
    plt.ylim(0,1000)
    plt.xlabel('Time (months)')
    plt.ylabel('Number of Sunspots')
    plt.legend(loc=9)
    plt.show()

问题是当我导入它时说x和y需要具有相同的第一维 . 我已经检查了这个程序中每个数组的形状和大小,它们都是一样的 .

完整错误跟踪回来

()最近的ValueError Traceback(最近一次调用)

----> 1 ps.plot_sunspots('C')

plot_sunspots中的/home/loberhel/ASTR260/HW2/plot_sunspot.pyc(部分)111 112 - > 113 plt.plot(x_2,y,label ='First Thousand Months',color ='y')

114         plt.plot(x_Avg, y_Average_Sunspot,label='Running Average',

color ='k')115 plt.xlim(0,1000)

/usr/lib64/python2.7/site-packages/matplotlib/pyplot.pyc in plot(* args,

** kwargs)2985 ax.hold(hold)

2986尝试:

  • 2987 ret = ax.plot(* args,** kwargs)

2988 draw_if_interactive()

2989终于:

/usr/lib64/python2.7/site-packages/matplotlib/axes.pyc in plot(self,* args,

** kwargs)

4135行= [] 4136 - > 4137 for self._get_lines(* args,** kwargs):

4138 self.add_line(line)

4139行 . 支持(行)

/usr/lib64/python2.7/site-packages/matplotlib/axes.pyc in

_grab_next_args(self,* args,** kwargs)

315                 return

316             if len(remaining) <= 3:
  • 317 for seg in self._plot_args(剩余,kwargs):

318                     yield seg

319                 return

_plot_args中的/usr/lib64/python2.7/site-packages/matplotlib/axes.pyc(self,tup,kwargs)293 x = np.arange(y.shape [0],dtype = float)294 - > 295 x,y = self._xy_from_xy(x,y)296 297 if self.command =='plot':

_us_from_xy中的/usr/lib64/python2.7/site-packages/matplotlib/axes.pyc(self,x,y)235 y = np.atleast_1d(y)

236         if x.shape[0] != y.shape[0]:
  • 237引发ValueError(“x和y必须具有相同的第一维”)

238         if x.ndim > 2 or y.ndim > 2:

239             raise ValueError("x and y can be no greater than 2-D")

ValueError:x和y必须具有相同的第一个维度