【问题标题】:ggplot2: Creating a visually intuitive timeline in R [closed]ggplot2:在 R 中创建视觉直观的时间线 [关闭]
【发布时间】:2017-04-04 16:43:50
【问题描述】:

是否有任何 ggplot2 向导知道如何使 看起来更直观?具体来说,我正在考虑在每个时间段的开始和结束时加上确切日期的注释(即,对于真腊来说,条形图将以公元 550 年的注释开始,以公元 802 年的注释结束)。

顺便说一句,我查看了注释文档并没有发现任何视觉上吸引人的东西。但是,像我一样了解 ggplot2 及其软件包系列,我确信那里有一个有吸引力的选择。

我也很好奇你们可能提出的任何其他关于使这更美观的建议。

这是数据:

cambodia = data.frame(Period = c("Funan", "Chenla/Zhenla","Khmer Empire","Dark Ages of Cambodia"),StartDate = c(-500,550,802,1431), EndDate = c(550,802,1431,1863), Color = c("lightblue","lightgreen","lightyellow","pink"))

注意:“颜色”与给定的值不对应——它更像是图形代码的占位符:

g2 <- ggplot() +
geom_segment(data=cambodia, aes(x=StartDate, xend=EndDate, y=Period, yend=Period, color=Color), linetype=1, size=2) +
scale_colour_brewer(palette = "Pastel1")+
xlab("Time")+
ylab("Periods of History")+
theme_bw() + theme(panel.grid.minor = element_blank(), panel.grid.major =   element_blank()) + theme(aspect.ratio = .2)
g2 + theme(legend.position="none")

【问题讨论】:

  • “更直观”并不是一个明确的编程规范。如果这不是一个编程问题,那么它不属于 Stack Overflow。也许尝试某种设计论坛。
  • 这里有一个建议:不要改变 y 轴刻度。保持所有段的高度相同。

标签: r ggplot2 timeline


【解决方案1】:

这不是一个真正的编程问题,但我认为它仍然很有趣,因为它展示了如何使用 ggplot 的可能性。我会将所有段放在同一高度,并使用 x 轴显示您感兴趣的主要日期(不过我不确定将文本放置在哪里):

 ggplot(data=cambodia) +
  geom_segment(aes(x=StartDate, xend=EndDate, y=0., yend=0., color=Period) , linetype=1, size=4) +
  scale_colour_brewer(palette = "Pastel1")+
  scale_y_continuous(limits=c(0,0.5))+
  scale_x_continuous(limits=c(-500,2000),  breaks= c(seq(0,2000,by=1000), cambodia$StartDate, cambodia$EndDate[4]))+
  xlab("Time")+
  ylab("Periods of History")+
  theme_bw() + theme(panel.grid.minor = element_blank(), panel.grid.major =   element_blank(), axis.title.y=element_blank(),axis.text.y=element_blank(),  axis.ticks.y=element_blank()) +
  theme(aspect.ratio = .2)+
  theme(legend.position="none") + 
  geom_text(aes(x=StartDate-100 + (EndDate- StartDate)/2,y=0.05,label=Period,angle=25,hjust=0))

【讨论】:

  • 您介意包含结果图表吗?这将有助于更好地评估您的答案。
  • 我认为这看起来很不错,而且你是对的,更直观。我在想这不会是因为它在 x 轴上太“忙”了,但那根本不算太忙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多