我正在尝试将文本包含在多面图的右上角。我有 5 个生存曲线图,我想在每个图中都包含文本,这将是生存概率等于 50 的月份。我的代码理想情况下会绘制物种的生存曲线并包含一个文本行:“平均Life X Months”,其中 X 是该物种有 50% 的生存概率的月份。我的代码几乎可以做到这一点,但是对于每个绘图,它都与每个文本行重叠。因此,我没有为每个绘图设置 1 个文本行,而是为每个绘图设置了 5 个相互重叠的文本行。我认为我的问题与分层的因素有关。
all<-survfit(Surv(MonthDifference,Survival)~Spec,data=ad,conf.type='log-log')
sum<-summary(all)
allquant<-quantile(all,.5)
stratalabs<-c("Species A","Species B","Species C","Species D","Species E")
names(stratalabs)<-c("A","B","C","D","E")
a<-ggplot(data = all, aes(x = time, y = surv))+
geom_line() +
facet_wrap( .~strata, ncol = 2,labeller =
labeller(strata = stratalabs))
dat_tex<-data.frame(label=c("Average Life 90 Months","Average Life 76 Months","Average Life 73 Months","Average Life 51 Months","Average Life 50 Months"),
f=factor(c(1:5)))
a+ geom_text(data=dat_tex,aes(x=800,y=1,label=label),vjust=2)
使用 egg 包的 tag_facet 函数对我在 SO 上的类似帖子的回答。使用此功能实际上确实有效并将文本放入正确的情节中,但问题是它删除了情节标题。
mytag<-c("Average Life 90 Months","Average Life 76 Months","Average Life 73 Months","Average Life 51 Months","Average Life 50 Months")
a<-ggplot(data = all, aes(x = time, y = surv))+
geom_line() +
facet_wrap( .~strata, ncol = 2,labeller =
labeller(strata = stratalabs))
tag_facet(a, x = Inf, y = Inf,
hjust = 1.0,
tag_pool = mytag)
我解决此问题的尝试来自: