Wolfram 语言

新的可视化领域

时间线图的布局和标签的放置

创建浪漫主义时期名人生卒日期的时间线.

In[1]:=
Click for copyable input
romanticerapeople = DeleteCases[ EntityValue[ Entity["HistoricalPeriod", "RomanticEra"][ "PeopleInvolved"], {"BirthDate", "DeathDate", "Name", "Image", "Occupation"}], {__, _Missing}];
In[2]:=
Click for copyable input
lifespan = GroupBy[romanticerapeople, Last -> (Tooltip[ Labeled[Interval@#[[1 ;; 2]], #[[3]], "StartBubble"], Labeled[#[[4]], DateDifference[#[[1]], #[[2]], "Year"]]] &)];

用单独行来显示每位作曲家.

In[3]:=
Click for copyable input
TimelinePlot[lifespan[{"composer"}], PlotLayout -> "Stacked", LabelStyle -> 12, ImageSize -> 550, PlotLabel -> "Romantic Era Composers", PlotTheme -> "Grid"]
Out[3]=

用最少行显示.

In[4]:=
Click for copyable input
TimelinePlot[lifespan[{"composer"}], PlotLayout -> "Grouped", LabelStyle -> 12, ImageSize -> 550, PlotLabel -> "Romantic Era Composers", PlotTheme -> "Grid"]
Out[4]=

把标签放在时间段的末端.

In[5]:=
Click for copyable input
lifespan = GroupBy[romanticerapeople, Last -> (Tooltip[ Labeled[Interval@#[[1 ;; 2]], #[[3]], "EndBubble"], Labeled[#[[4]], DateDifference[#[[1]], #[[2]], "Year"]]] &)];
In[6]:=
Click for copyable input
TimelinePlot[lifespan[{"composer"}], LabelStyle -> 12, ImageSize -> 550, PlotLabel -> "Romantic Era Composers", PlotTheme -> "Grid"]
Out[6]=

如果数据条目太多,空间又有限,可将标签置于时间段的后面.

In[7]:=
Click for copyable input
lifespan = GroupBy[romanticerapeople, Last -> (Tooltip[Labeled[Interval@#[[1 ;; 2]], #[[3]], After], Labeled[#[[4]], DateDifference[#[[1]], #[[2]], "Year"]]] &)];
In[8]:=
Click for copyable input
TimelinePlot[Values@lifespan, PlotLayout -> "Grouped", LabelStyle -> 14, AspectRatio -> 1/1.2, ImageSize -> 450, PlotLegends -> LineLegend[Flatten@Keys[lifespan], LegendLayout -> "ReversedColumn"], PlotTheme -> "Web"]
Out[8]=

采用紧凑的布局.

In[9]:=
Click for copyable input
TimelinePlot[Values@lifespan, PlotLayout -> "Packed", LabelStyle -> 14, AspectRatio -> 1/1.2, ImageSize -> 450, PlotLegends -> LineLegend[Flatten@Keys[lifespan], LegendLayout -> "ReversedColumn"], PlotTheme -> "Web"]
Out[9]=

相关范例

de en es fr ja ko pt-br ru