我有一个熊猫表,每个条目都有一个开始和结束时间。它们不相交,但范围从几秒到几天不等。我想将它们可视化,理想情况下,x 轴是它们出现的日期,y 轴是时间。但是,我还没有找到实现这一目标的好方法。
一个想法是我使用 Boxplots(一个 Box,每个条目有一个开始和一个结束时间)并按 [年、月、日] 分组,但是当间隔开始和结束于不同的一天时,这个想法不起作用。
我有一个熊猫表,每个条目都有一个开始和结束时间。它们不相交,但范围从几秒到几天不等。我想将它们可视化,理想情况下,x 轴是它们出现的日期,y 轴是时间。但是,我还没有找到实现这一目标的好方法。
一个想法是我使用 Boxplots(一个 Box,每个条目有一个开始和一个结束时间)并按 [年、月、日] 分组,但是当间隔开始和结束于不同的一天时,这个想法不起作用。
Wolfram 最近发布了一个免费的 Wolfram 引擎,可以在 Python(和其他语言)中调用,因此您可以使用它的功能,例如TimelinePlot
.
首先使用 2017 年飓风Interval
的开始和结束日期获取一些 date 。"TropicalStorm"
ec = EntityClass["TropicalStorm", "Hurricanes2017"];
timeIntervals = Interval /@ EntityValue[ec, {"StartDate", "EndDate"}];
timeIntervals
包含Interval
s 个DateObject
。其中前 3 个是
timeIntervals[[;; 3]]
一个基本TimelinePlot
的timeIntervals
给予
TimelinePlot[timeIntervals]
但是,TimelinePlot
有很多选项可以自定义它。例如,取timeIntervals
, ,每个集合中第一个间隔的第一个日期(请参阅),并使用每个集合的 s 作为图例键添加一个。GatherBy
"Month"
SortBy
Part
Automatic
LineLegend
"MonthShortName"
With[{
byMonth =
SortBy[#[[1, 1, 1]] &]@GatherBy[timeIntervals, DateValue[#[[1, 1]], "Month"] &]
},
TimelinePlot[
byMonth,
PlotLegends ->
LineLegend[Automatic, DateValue[#[[1, 1, 1]], "MonthNameShort"] & /@ byMonth]
]]
希望这可以帮助。
在不知道细节的情况下,我只能提出一般性的想法: