2016-09-22 1 views
0

Позвольте мне кратко проинструктировать вас во-первых, я работаю с файлом .txt с 5400 точками данных. Каждый из них составляет 16 секунд в среднем за 24 часа (24 часа * 3600 с/час = 86400 ... 86400/16 = 5400). Короче говоря, это средняя магнитная сила в направлении z для реверсирования поля входящей частички спутника Advanced Compposition Experiment. Данные общедоступны here. Поэтому, когда я пытаюсь построить это ошибка говоритЗначение Ошибка: x и y должны иметь такое же первое измерение

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

Так что я создал Numpy LIN пространство 5400 точек разбитых на части 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 
+0

Пожалуйста, добавьте все это сообщение об ошибке, включая трассировку стека – CAB

+0

добавлен полный обратное прослеживание отсчет для условия – anabstudent

+0

LINSPACE Что делает 'печати (Bz.shape)' шоу? –

ответ

0

Проблема заключалась выбор создания массива. Вместо linspace я должен был использовать arange.

Mag_time = np.arange(0,86400, 16, dtype = float) 
Смежные вопросы