是否有任何ggplot2向导知道如何使这个看起来更直观?具体来说,我在每个时间段的开头和结尾都考虑了具有确切日期的注释(例如,对于Zhenla,条形图将以注释说明550 AD开始,并以注释说明802AD结束)。
顺便说一句,我已经查看了注释文档,并且没有找到任何视觉上吸引人的东西。但是,像我一样了解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")
答案 0 :(得分:2)
这不是一个真正的编程问题,但我认为它仍然很有趣,因为它展示了如何使用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))