Wolfram 语言

时间序列处理

载人航天任务

MannedSpaceMissionData 提供有关当前及历史上人类探索太空的信息.

In[1]:=
Click for copyable input
missions = MannedSpaceMissionData[];

可以根据任务的发射日期,通过用矢量值存储任务本身和每个任务的持续时间来创建一个 EventSeries.

In[2]:=
Click for copyable input
data = DeleteMissing[ MannedSpaceMissionData[ missions, {"LaunchDate", "Entity", "MissionDuration"}], 1, 2];
In[3]:=
Click for copyable input
es = EventSeries[data[[All, {2, 3}]], {data[[All, 1]]}]
Out[3]=

时间戳的 TimelinePlot 显示了自 1961 年以来载人航天任务几乎连续不断的进程.

In[4]:=
Click for copyable input
TimelinePlot[es["Dates"]]
Out[4]=

为分析任务的持续时间,提取原事件序列的第二个分量并将其值转换为小时.

In[5]:=
Click for copyable input
durations = UnitConvert[es["PathComponent", 2], "Hours"]
Out[5]=

短暂的任务是最常见的.

In[6]:=
Click for copyable input
Histogram[durations, Quantity[{0, 6000, 500}, "Hours"], AxesLabel -> Automatic]
Out[6]=
显示完整的 Wolfram 语言输入
In[7]:=
Click for copyable input
x1 = 250; x2 = 4500; line1 = {{es["FirstDate"], x1}, {es["LastDate"], x1}}; line2 = {{es["FirstDate"], x2}, {es["LastDate"], x2}}; opts = {Joined -> {False, True, True}, Filling -> {1 -> 0}, PlotLabels -> {None, Quantity[x1, "Hours"], UnitConvert[Quantity[N[x2, 4], "Hours"], "Days"]}};
In[8]:=
Click for copyable input
DateListPlot[{durations, line1, line2}, opts]
Out[8]=

计算任务持续时间的一些描述性统计量. 注意均值和中位数相距甚远,显示出一个长尾分布.

In[9]:=
Click for copyable input
stats = {Min, Max, Mean, Median}; convert := UnitConvert[N[#], MixedUnit[{"Months", "Days", "Hours", "Minutes"}]] &
In[10]:=
Click for copyable input
TableForm[Map[convert[#[durations]] &, stats], TableHeadings -> {stats}]
Out[10]//TableForm=

在太空有人类活动的时间总和.

In[11]:=
Click for copyable input
UnitConvert[Total[durations], MixedUnit[{"Years", "Months", "Days", "Hours", "Minutes", "Seconds"}]]
Out[11]=

相关范例

de en es fr ja ko pt-br ru