Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么stat_summary仅在数字为y而不是x时才生成错误条?_R_Plot_Ggplot2 - Fatal编程技术网

为什么stat_summary仅在数字为y而不是x时才生成错误条?

为什么stat_summary仅在数字为y而不是x时才生成错误条?,r,plot,ggplot2,R,Plot,Ggplot2,我正试图了解stat\u summary的工作原理,因为我想用它将错误条添加到包含所有单个数据点的绘图中。我不明白的是: ggplot(iris, aes(y = Sepal.Length, x = Species)) + stat_summary(fun.data = mean_cl_boot, geom = "errorbar", width = 0.2) + geom_point(aes(color = Species), size = 4) 生成我想要的绘图类型: 但是

我正试图了解
stat\u summary
的工作原理,因为我想用它将错误条添加到包含所有单个数据点的绘图中。我不明白的是:

ggplot(iris, aes(y = Sepal.Length, x = Species)) + 
  stat_summary(fun.data = mean_cl_boot, geom = "errorbar", width = 0.2) + 
  geom_point(aes(color = Species), size = 4) 
生成我想要的绘图类型:

但是,如果我尝试在x轴而不是y轴上绘制萼片长度图,则没有错误条:

ggplot(iris, aes(y = Species, x = Sepal.Length)) + 
  stat_summary(fun.data = mean_cl_boot, geom = "errorbar", width = 0.2) + 
  geom_point(aes(color = Species), size = 4) 

我知道我可以通过简单地将
+coord_flip()
添加到第一个绘图中来解决我的问题,但我真的很想了解
stat_summary
是如何工作的,为什么它对数据是在x轴还是y轴很敏感,以及如何告诉它我做了超出预期的事情

另外,我真的希望能够使用
facet\u wrap(~Factor,scales=“free”)
来绘制我的真实数据,但这不起作用(
facet\u render.wrap中的错误(plot$facet,panel,plot$coordinates,plot\u主题(plot)):ggplot2目前不支持非笛卡尔坐标系或坐标系翻转的自由比例。

有人能解释一下为什么统计摘要对数字所在的轴很敏感,以及是否有办法告诉它我的数据不是默认格式?
谢谢!

stat_summary()帮助页面上的标题已经声明,此函数
在每个唯一的x处汇总y值。因此,如果将y值设置为
物种
,将
萼片长度
设置为x,则函数将尝试在每个唯一的x值处汇总
物种
(这不起作用,因为
物种
不是数字,无法计算置信区间)

如果在
stat\u summary()
中设置另一个函数,例如,
fun.y=length
,则可以看到,对于每个唯一的x值,将计算观察值的数量(此函数也适用于因子和字符向量)


查看
geom\u errorbar
。在“美学”下,你会发现
x
ymin
ymax
。你找不到
y
xmin
xmax
。因此,如果不翻转轴,水平错误条是不可能的。好的,我同意你的意见。所以我需要弄清楚是否有功能(或函数组合),这些函数处理的因子将产生我想要的计算结果。谢谢!我建议您在绘制之前计算置信区间,然后绘制汇总数据。在这种情况下,您可以使用geom_errorbarh()(末尾的h字母)绘制水平误差条。
ggplot(iris, aes(y = Species, x = Sepal.Length)) + 
  stat_summary(fun.y = length, geom = "point", size=10)+ 
  geom_point(aes(color = Species), size = 4)