使用以下数据框和向量:
df<-data.frame(time=as.POSIXct(c("2013-04-23 10:00:00","2013-04-23 12:08:00")),
info=c("point","point"),
bin=c("bin length","bin length"),
upper=c(3.7,1.54),
lower=c(3.11,1.13),rate=c(3.43,1.33))
deltaTS=df$time[2]-df$time[1]
data.frame 可以使用以下代码绘制图形:
ggplot(data=df,aes(x=time+deltaTS*.97,y=rate))+
geom_pointrange(aes(ymin=lower,ymax=upper,x=time+deltaTS*.97,position="identity"),color="white",show_guide=T)+
geom_point(size=7,color="white",aes(color=info,fill=info,group=info))+
geom_point(size=6,color="tomato",aes(color=info,fill=info,group=info))+
geom_segment(aes(x=time, y=0, xend=time+(deltaTS*.96), yend=0,fill=bin,group=bin), alpha=0.7,color="black",size=3,show_guide=F)+
geom_segment(aes(x=time+(deltaTS*.01), y=0, xend=time+(deltaTS*.95), yend=0,fill=bin,group=bin), alpha=0.7,color="tomato",size=2,show_guide=T)+
theme(legend.title = element_text(size=15),
legend.text = element_text(size = 15),
plot.title = element_text(size=20),
strip.text = element_text(size=18),
axis.title.x = element_text(size=18),
axis.title.y = element_text(size=19),
axis.text.x = element_text(size = 15, colour = 'black', angle = 0),
axis.text.y = element_text(size = 15, colour = 'black', angle = 0),
legend.position = "right",
panel.background = element_rect(fill = "#333333"),
panel.grid.major = element_line(colour = "#454545"),
panel.grid.minor = element_line(colour = "#454545"))+
ylim(0,4)+
scale_x_datetime(lim = c(as.POSIXct("2013-04-23 10:00:00", format="%Y-%m-%d %H:%M:%S"),as.POSIXct("2013-04-23 14:30:00", format="%Y-%m-%d %H:%M:%S")))+
xlab("time")+
ylab("rate")+ ggtitle("Point, Bin Length and 95% CI")
可以改进图形的图例。具体来说,图例中的元素geom_segment()
和geom_point()
重叠,而没有geom_pointrange()
显示任何元素:
在将“置信区间”添加到图例时,可以将“点”和“bin 长度”图标分开,以便它们不会重叠吗?更具体地说,图例中的geom_segment()
和geom_point()
元素不应重叠。geom_pointrange()
元素也应显示在图例中。谢谢你的帮助!
编辑 2013 年 9 月 16 日:这是一个带有我想创建的图例的图表: