Как объединить массивы datetime без изменения типа? - PullRequest
0 голосов
/ 26 сентября 2019

Так что в основном я хотел добавить 4 массива даты / времени в конец друг друга (то есть [1,2,3] + [1,2,3] => [1,2,3,1,2, 3]) это то, что я пробовал, когда данные - это фрейм данных:

 x=np.concatenate((data.index,data.index,data.index,data.index))  

Затем, когда я попытался построить его (у и z все было в порядке):

ax = plt.axes(projection="3d")
ax.scatter3D(x, y, z, c=z, cmap='hsv');

Я получилошибка в том, что x не был типом даты и времени, я предполагаю, что использование numpy.concatenate изменило тип, например, такой ввод:

print(x[1])
print(data.index[1])

дает такой вывод:

  2019-09-22T23:58:00.000000000
  2019-09-22 23:58:00

Итакмой вопрос: как я могу объединить эти массивы так, чтобы matplotlib был счастлив со мной.

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

попробуйте установить для параметра оси значение none (по умолчанию 0)

np.concatenate((a, b), axis=None)
0 голосов
/ 26 сентября 2019

Еще один обходной путь, который я нашел полезным для кого-то, заключался в преобразовании его в секунды:

 x=np.concatenate((data.index,data.index,data.index,data.index))                                                            
 ts = (x - np.datetime64('1970-01-01T00:00:00')) / np.timedelta64(1, 's') 
 ax = plt.axes(projection="3d")
 ax.scatter3D(ts, y, z, c=XX, cmap='hsv'); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...