重複の可能性:
ggplot2の個々のファセットにテキストを注釈する
私は3つの種のデータセットに取り組んでいます。リンゴ、オレンジ、バナナです。
下部パネルのみにファセットに注釈を付けたい。ただし、デフォルトでは、すべてのプロットで注釈が付けられています。希望のプロットでのみテキスト注釈を取得できました。しかし、私は矢印/セグメントに対して何をする必要があるのか混乱しています。
これが私のコードです:
library(ggplot2)
library(grid)
tempobs <- read.csv("temp data share.csv",header=T, sep=",")
p1 <- ggplot(tempobs,aes(x=time,y=data))+geom_point(data=tempobs,aes(x=time,y=data,colour=group1))+facet_wrap(~id,ncol=1)+theme_bw()
p1 <- p1 + xlab("Julian Day (2008-2009)")+ylab(expression(Temperature~(degree*C)))+ element_blank()+ theme(
legend.position="right",
legend.direction="vertical",
legend.title = element_blank()) +coord_cartesian(xlim=c(250,550))+coord_cartesian(ylim=c(0,40))+scale_x_continuous(breaks=c(250,300,350,400,450,500,550),labels=c("250","300","350","34","84","134","184"))
p1
### This is how it should look like (though shows annotations for all the plots)
p + annotate("text",x=340,y=3,label="2008",size=3)+annotate("segment",x=366,xend=366,y=0,yend=2,size=0.5)+annotate("text",x=390,y=3,label="2009",size=3)+annotate("segment",x=366,xend=310,y=1,yend=1,size=0.5,arrow=arrow(length=unit(0.2,"cm")))+annotate("segment",x=366,xend=420,y=1,yend=1,size=0.5,arrow=arrow(length=unit(0.2,"cm")))
### This is what I did to show text annotation on the bottom panel
ann_text <- data.frame(x=c(340,390),y=c(3,3),id=c("orange"),label=c("2008","2009"))
p1 <- p1 + geom_text(data=ann_text,aes(x=x,y=y,label=label,size=3),show_guide=F)
p1
次に、グラフ全体に基づいて矢印とセグメントを追加します。
私のデータはhttps://www.dropbox.com/s/dfcmqrslskwdh80/temp%20data%20share.csvで見つけることができます
私の出力は
これは私がテキスト注釈だけで得たものです。しかし、セグメント注釈については、常にエラーが発生しました。下部のパネルにテキストラベル2008および2009が追加されていることがわかります。
出力には必要な注釈が表示されますが、すべてのファセットにあります。一番下のものだけが欲しいです。
どうもありがとう。
よろしく、Jdbaba