Я пытаюсь сделать график временного ряда с DateListPlot
. Я хочу подать его временной ряд, который я получаю из базы данных SQL. Когда я получаю временной ряд, список состоит из SQLDateTime
записи это DateListPlot
не понимает.
In[24]:= t=SQLExecute[conn, "select timestamp,value from timeseries order by timestamp asc"]
Out[24]={{SQLDateTime[{2010,1,1}],12.3},{SQLDateTime[{2010,1,2}],12.51}}
Не работает: In[25]:= DateListPlot[t]
DateListPlot
требует кортежа Даты и не понимает SQLDateTime. Что я могу сделать?
Ответ:
In[1]:= SQLDateTime[{2001, 5, 7}][[1]]
Out[1]:= {2001,5,7}
Mathematica думает обо всем очень похоже. То, что вы видите как {1, 2, 3}
, на самом деле является List[1,2,3]
. Функция Part (обозначаемая [[...]]
) работает так же хорошо для любой функции, а не только для List
.
Быстрый и грязный способ применить это в вашем случае:
{#[[1,1]],#[[2]]}& /@ SQLExecute[...]