簡體   English   中英

值錯誤:x和y必須具有相同的第一維

[英]Value Error: x and y must have the same first dimension

首先,讓我快速向您介紹一下,我正在處理具有5400個數據點的.txt文件。 每個都是24小時內的16秒平均值(24小時* 3600 s / hr = 86400 ... 86400/16 = 5400)。 簡而言之,這是進階成分實驗衛星的入站粒子場屈膝禮在z方向的平均磁強度。 數據可在此處公開獲得。 所以當我嘗試繪制時會顯示錯誤

Value Error: x and y must have the same first dimension

因此,我創建了一個5400點的numpy林空間,該空間被16個單位分解。 我這樣做是因為我認為我的尺寸與我之前定義的數組不匹配。 但是現在我可以確定這兩個數組的維數相同,但仍然會返回該值錯誤。 代碼如下:

首先嘗試(不使用linspace):

import numpy as np
import matplotlib as plt

Bz = np.loadtxt(r"C:\Users\Schmidt\Desktop\Project\Data\ACE\MAG\ACE_MAG_Data_20151202_GSM.txt", dtype = bytes).astype(float)

Start_ACE = dt.date(2015,12,2)
Finish_ACE = dt.date(2015,12,2)

dt_Mag = 16

time_Mag = np.arange(Start_ACE, Finish_ACE, dt_Mag)

plt.subplot(3,1,1)
plt.plot(time_Mag, Bz)
plt.title('Bz 2015 12 02')

第二次嘗試(使用linspace):

import numpy as np
import matplotlib as plt

Bz = np.loadtxt(r"C:\Users\Schmidt\Desktop\Project\Data\ACE\MAG\ACE_MAG_Data_20151202_GSM.txt", dtype = bytes).astype(float)

Mag_time = np.linspace(0,5399,16, dtype = float)

plt.subplot(3,1,1)
plt.plot(Mag_time, Bz)
plt.title('Bz 2015 12 02')

除了這是一個尺寸問題外,我不知道還有什么可以阻止此繪圖過程。

完整回溯:

ValueError                                Traceback (most recent call last)
<ipython-input-68-c5dc0bdf5117> in <module>()
      1 plt.subplot(3,1,1)
----> 2 plt.plot(Mag_time, Bz)
      3 plt.title('Bz 2015 12 02')

C:\Users\Schmidt\Anaconda3\lib\site-packages\matplotlib\pyplot.py in plot(*args, **kwargs)
   3152         ax.hold(hold)
   3153     try:
-> 3154         ret = ax.plot(*args, **kwargs)
   3155     finally:
   3156         ax.hold(washold)

C:\Users\Schmidt\Anaconda3\lib\site-packages\matplotlib\__init__.py in inner(ax, *args, **kwargs)
   1809                     warnings.warn(msg % (label_namer, func.__name__),
   1810                                   RuntimeWarning, stacklevel=2)
-> 1811             return func(ax, *args, **kwargs)
   1812         pre_doc = inner.__doc__
   1813         if pre_doc is None:

C:\Users\Schmidt\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py in plot(self, *args, **kwargs)
   1422             kwargs['color'] = c
   1423 
-> 1424         for line in self._get_lines(*args, **kwargs):
   1425             self.add_line(line)
   1426             lines.append(line)

C:\Users\Schmidt\Anaconda3\lib\site-packages\matplotlib\axes\_base.py in _grab_next_args(self, *args, **kwargs)
    384                 return
    385             if len(remaining) <= 3:
--> 386                 for seg in self._plot_args(remaining, kwargs):
    387                     yield seg
    388                 return

C:\Users\Schmidt\Anaconda3\lib\site-packages\matplotlib\axes\_base.py in _plot_args(self, tup, kwargs)
    362             x, y = index_of(tup[-1])
    363 
--> 364         x, y = self._xy_from_xy(x, y)
    365 
    366         if self.command == 'plot':

C:\Users\Schmidt\Anaconda3\lib\site-packages\matplotlib\axes\_base.py in _xy_from_xy(self, x, y)
    221         y = _check_1d(y)
    222         if x.shape[0] != y.shape[0]:
--> 223             raise ValueError("x and y must have same first dimension")
    224         if x.ndim > 2 or y.ndim > 2:
    225             raise ValueError("x and y can be no greater than 2-D")

ValueError: x and y must have same first dimension

問題是選擇數組創建。 代替linspace,我應該使用arange。

Mag_time = np.arange(0,86400, 16, dtype = float)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM