【问题标题】:Specifying custom error bars in ggplot2 when using facet_grid使用 facet_grid 时在 ggplot2 中指定自定义误差线
【发布时间】:2013-04-23 02:32:03
【问题描述】:

我使用stat_summary 从我的数据创建了多个条形图。但是,我想手动指定误差线的限制(而不是使用mean_cl_boot)。对于使用facet_grid 绘制的数据,如何做到这一点?

我用来创建图表的代码如下:

graph <- ggplot(slantclean, aes(x = View,value, fill = Texture))

graph + stat_summary(fun.y = mean, geom = "bar", position = "dodge") + 
     stat_summary(fun.data = mean_cl_boot, geom = "pointrange", 
                     position = position_dodge(width = 0.90)) + 
     labs(x = "View", y = "Vertical height of ellipse (cm)", fill = "Texture") + 
     facet_grid( Shape ~ TNOGroup)

不幸的是,数据的复杂性意味着不可能有一个最小的例子。数据框可以访问here。该图的一个示例是here

【问题讨论】:

标签: r ggplot2


【解决方案1】:

您可以定义自己的函数以在stat_summary() 中使用。如果您在stat_summary() 中使用geom="pointrange",那么您的函数应该在一个数据帧中提供yyminymax 值。

这里只是创建函数my.fun 的示例,该函数计算最小值、最大值和平均值。在stat_summary() 中使用时,将为数据中的每个级别计算此值。

my.fun<-function(x){data.frame(ymin=min(x),ymax=max(x),y=mean(x))}

graph <- ggplot(slantclean, aes(x = View,value, fill = Texture))

graph + stat_summary(fun.y = mean, geom = "bar", position = "dodge") + 
  stat_summary(fun.data = my.fun, geom = "pointrange", position = position_dodge(width = 0.90)) + 
  labs(x = "View", y = "Vertical height of ellipse (cm)", fill = "Texture") + 
  facet_grid( Shape ~ TNOGroup)

【讨论】:

  • 恭喜@Didzis 达到 10K!
  • 我不得不按照我对原始帖子的评论所建议的那样做,因为 R 奇怪地计算了跨组的平均值。不过,这对以后很有用,谢谢!
猜你喜欢
  • 2015-12-26
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
  • 2019-03-16
  • 2021-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多