ggplot图例问题:元素重叠和/或缺失? [geom_pointrange,geom_point和geom_segment]

时间:2013-09-14 21:20:42

标签: r ggplot2 legend

使用以下数据框和向量:

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()的元素均未显示:

enter image description here

可以&#34;指向&#34;和&#34; bin length&#34;图标被分开,以便在添加&#34;置信区间时不会重叠&#34;对传说?更具体地说,图例中的geom_segment()geom_point()元素不应重叠。 geom_pointrange()元素也应该显示在图例中。谢谢你的帮助!

编辑2013年9月16日:这是一张包含我想创建的传奇故事的图表: enter image description here

0 个答案:

没有答案