ggplot2:geom_text()与facet_grid()?

hat*_*rix 17 plot r ggplot2

我只想为ggplot2生成的每个数字面板添加注释; 每个角落都有简单的标签,如(a),(b),(c)等.有一个简单的方法吗?

hrb*_*str 29

来自: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)
Run Code Online (Sandbox Code Playgroud)

哪个应该给你这个:

  • +1,但你能提供更多的背景知识吗?现在它只是一段代码和图片. (7认同)
  • 当然.基本`ggplot`调用具有数据框,其中包含`geom_point``facet_grid` facets的实际绘图数据.关键是为`geom_text`设置一个新的数据框(在代码片段中动态创建,但你可以在`ggplot`块之外创建它并只引用数据框)并匹配标签元素的数量到小平面的数量.您可以使用多次调用`geom_text`在整个构面上放置多个不同的标签.它们将按顺序引用,因此请注意这一点. (3认同)
  • 如果您想要绘制多个标签,则无需多次调用 geom_text,只需使用适当的 text 和facet_grid 变量将行添加到 data.frame 中即可。 (2认同)
  • 啊,我已经看到了但是没有工作,因为我有错误.谢谢.但是你知道`Inf`的工作条件吗?我只是说,`seq.default中的错误(从=最佳$ lmin,到=最佳$ lmax,由=最佳$ lstep):'from'必须长度为1`. (2认同)

Pau*_*tra 5

基本上,您data.frame使用包含带有文本的列的文本以及包含您用于的变量的列来创建facet_grid.然后,您可以简单地添加一个geom_textdata.frame.有关geom_text文本放置等的更多详细信息,请参阅文档.