【发布时间】:2013-03-29 20:04:09
【问题描述】:
我只想为ggplot2生成的每个面板添加注释;每个角落只有简单的标签,如 (a)、(b)、(c) 等。有没有简单的方法来做到这一点?
【问题讨论】:
-
有图片作为例子,可以发一下吗?
-
对不起,我需要弄清楚如何发布图片......
我只想为ggplot2生成的每个面板添加注释;每个角落只有简单的标签,如 (a)、(b)、(c) 等。有没有简单的方法来做到这一点?
【问题讨论】:
来自:https://groups.google.com/forum/?fromgroups=#!topic/ggplot2/RL8M7Ut5EpU 您可以使用以下内容:
library(ggplot2)
x <-runif(9, 0, 125)
data <- as.data.frame(x)
data$y <- runif(9, 0, 125)
data$yy <- factor(c("a","b","c"))
ggplot(data, aes(x, y)) +
geom_point(shape = 2) +
facet_grid(~yy) +
geom_text(aes(x, y, label=lab),
data=data.frame(x=60, y=Inf, lab=c("this","is","the way"),
yy=letters[1:3]), vjust=1)
应该给你这个:
【讨论】:
ggplot 调用具有带有geom_point facet_grid 构面的实际绘图数据的数据框。关键是为 geom_text 设置一个新的数据框(在代码 sn-p 中动态创建,但您可以在 ggplot 块之外创建它并仅引用数据框)并匹配标签的数量元素到方面的数量。您可以多次调用geom_text 在各个方面放置多个不同的标签。它们将按顺序被引用,因此请注意这一点。
Inf 工作的条件吗?我的只是说,Error in seq.default(from = best$lmin, to = best$lmax, by = best$lstep) : 'from' must be of length 1.
基本上,您创建一个带有文本的data.frame,其中包含一个带有文本的列,以及一个带有您用于facet_grid 的变量的列。然后,您可以简单地添加 geom_text 和 data.frame。有关文本放置等的更多详细信息,请参阅geom_text 的文档。
【讨论】: