0

使用以下数据框和向量:

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 日:这是一个带有我想创建的图例的图表: 在此处输入图像描述

4

0 回答 0