如何在R ggplot2 facet_wrap中的因子标题下添加文本或值?

时间:2017-10-21 23:15:39

标签: r ggplot2

例如,

ggplot(mpg, aes(displ, hwy)) +
  geom_point() +
  facet_wrap(~class, nrow = 4)    

按因子生成图表。如何在每个标题(2座,紧凑型,中型,小型货车等)下添加文字或值,如观察方式和数量?我认为这与贴标机有关,但我似乎无法让它发挥作用。

1 个答案:

答案 0 :(得分:1)

我使用虹膜作为一个例子,因为只有3组(而不是mpg中的6个类),以及没有进入mpg示例中“2seater”创建的古怪问题。

(i)创建摘要统计。在这种情况下,n号:

ann_text <- iris %>% 
            group_by(Species)  %>% 
            summarise(n=n())

(ii)创建自定义标签

sp.labels <- c(
  setosa = paste0("setosa\n(n=", ann_text[ann_text$Species=="setosa", "n"],")"),
  versicolor = paste0("versicolor\n(n=", ann_text[ann_text$Species=="versicolor", "n"],")"),
  virginica = paste0("virginica\n(n=", ann_text[ann_text$Species=="virginica", "n"],")")
  )

(iii)使用自定义标签绘图:

ggplot(iris, aes(Petal.Length, Sepal.Length)) + 
  geom_point() + 
  facet_wrap(~Species,
             labeller=labeller(
               label_wrap_gen(width=10), 
               Species=sp.labels))

enter image description here

有关更多示例,请参阅construct labelling specification