次のデータ フレームとベクトルを使用します。
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()
は表示されていません。
凡例に「信頼区間」を追加する際に、「ポイント」アイコンと「ビン長」アイコンを分離して重複しないようにすることはできますか? より具体的には、凡例の要素geom_segment()
と要素が重なってはいけません。要素は凡例にも表示する必要がありますgeom_point()
。geom_pointrange()
助けてくれてありがとう!
編集 2013 年 9 月 16 日: これは、私が作成したい種類の凡例を含むグラフです。