我使用ggplot2在文本注释方面遇到了一些麻烦。我希望有人在这里帮助我。
我想注释不同的文字以修复所有切面图上的位置。我找不到任何解决方案,当我使用" free_y"时怎么做?规模。
我使用了这段代码:
library(ggplot2)
library(grid)
## Data.
d1 = data.frame(sim1 = runif(100), n1 = 500, y1 = runif(100),
group1 = rep(c("A", "B"), each = 250))
d2 = d1[!duplicated(d1$group1), ]
## Consistent number for all plot.
grob1 <- grobTree(textGrob(paste("N = ", d2[, 2]),
x = 0.01, y = 0.95, hjust = 0,
gp = gpar(col = "black", fontsize = 13,
fontface = "bold")))
## Varying number for facets.
grob2 <- grobTree(textGrob(d2$sim1, x = 0.01, y = 0.85, hjust = 0,
gp = gpar(col = "black", fontsize = 13,
fontface = "bold")))
grob3 <- grobTree(textGrob(d2$y1, x = 0.01, y = 0.75, hjust = 0,
gp = gpar(col = "black", fontsize = 13,
fontface = "bold")))
## Plot.
ggplot(d1, aes(log2(sim1))) +
geom_density() +
scale_x_continuous("") +
scale_y_continuous("") +
facet_wrap(~ group1, ncol = 1, scales = "free_y") +
annotation_custom(grob1) +
annotation_custom(grob2) +
annotation_custom(grob3)
但是,它始终注释所有绘图的第一个元素。
答案 0 :(得分:0)
好吧,我同意@baptiste。这是一个想法 - 首先创建一个数据框。
ann_text = data.frame(x= c(...), value= c(...), lab=c(...) )
在此,前两个矢量将定位位置,最后一个是标签矢量。然后使用 -
geom_text(data = ann_text, aes(label=lab), size= 5, colour = "red", fontface= ...)
等