使用ggplot和stat_summary

时间:2015-10-05 22:03:27

标签: r plot ggplot2

这是与this one相关的问题。我正在处理两个组的箱图,并使用该问题中提出的函数n_fun进行了一些小修改(我使用y = 10来定位“n =”,因为我发现它在中位数之上令人不安)。

这是功能:

n_fun <- function(x){
  return(data.frame(y = 10, label = paste0("n = ",length(x))))
} 

ggplot(mtcars, aes(x=factor(cyl), mpg, fill=factor(am))) +  
geom_boxplot() + stat_summary(fun.data = n_fun, geom = "text")

问题是该函数识别出有两个不同的“n =”要绘制,但它们在一个'y'上一起绘制。我试图在n_fun的y位置输入一个向量,它被接受了。但是,我得到两个过分的“n =”。我正在为stat_summary寻找类似“position = dodge”的东西,或者告诉ggplot它必须以与绘制躲闪的箱形图相同的方式绘制这些文本。

1 个答案:

答案 0 :(得分:1)

好吧,正如帮助?position_dodge所述:躲避不同宽度的东西可能会很棘手。您可能需要明确指定躲避的宽度。在你的情况下:

ggplot(mtcars, aes(x=factor(cyl), mpg, fill=factor(am))) +  
  stat_summary(fun.data = n_fun, geom = "text", 
               position = position_dodge(.9))