r - 使用 geom_text 对 ggplot2 中的各个方面进行注释
问题描述
我正在尝试将文本包含在多面图的右上角。我有 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)
我解决此问题的尝试来自:
解决方案
推荐阅读
- python - Python Setuptools CLI 构建
- sql - 为什么在左连接中使用子查询会给出与等效表完全不同的答案?
- jquery - 使用 .html() 函数插入时更改 html 中的跨度中的段落
- performance - 网页性能测试
- c - FFMPEG 用于从 yuv420p 转换为 rgb bmp 的所有操作是什么?
- javascript - SyntaxError:意外的令牌导入 - reactjs
- jmeter - 如何使 jmeter 报告仪表板显示超过三个百分位数?
- javascript - 如何将 url 参数与返回的数据链接?
- javascript - 使用 JavaScript 递归计算字符串中的元音
- php - 字段“caturl”没有默认值