小编M4R*_*NK4的帖子

使用stat_summary和ggplot时更改条宽

我stat_summary在ggplot中使用绘制条形图.我想改变酒吧的宽度.通常这是使用width选项完成的.使用预先汇总的数据,stat="identity它按预期工作:

data <- data.frame(group=rep(c("a","b"), 20), y=rnorm(40,100,50))
se <- function(x, na.rm=T) sd(x, na.rm=na.rm)/sqrt(length(x))
data2 <- cast(data, group ~ ., value="y", c(mean, se))
ggplot(data2, aes(group, mean, ymin=mean-1.96*se, ymax=mean+1.96*se)) +
 geom_bar(stat="identity", width=0.5) + geom_errorbar(width=0, size=2)
Run Code Online (Sandbox Code Playgroud)

但是,在使用原始数据的相同图中stat_summary,条形不会改变宽度,而错误条则会:

ggplot(data, aes(group, y)) + stat_summary(fun.y="mean", geom="bar", width=0.5) +
 stat_summary(fun.data="mean_cl_normal", geom="errorbar", width=0, size=2)
Run Code Online (Sandbox Code Playgroud)

有没有办法改变条宽,即使使用stat_summary?

由于第一个例子有效,这个问题显然已经解决了,但是,我真的想知道是否有任何方法可以解决这个问题stat_summary,因为我经常使用它并且通常更方便.

谢谢!

r ggplot2

11
推荐指数
1
解决办法
5704
查看次数

为什么函数t为类设置为"test"的对象返回t.test?

我正在阅读Hadley Wickham的书籍Advanced R,特别是OO fied指南(http://adv-r.had.co.nz/OO-essentials.html).该章的第一个练习如下:

阅读t()和t.test()的源代码,并确认t.test()是S3泛型而不是S3方法.如果用类测试创建一个对象并用它调用t()会发生什么?

如果我正确理解了这一章,我们可以确认t()和t.test()是通用的,因为它们在源代码中使用UseMethod()函数.methods(t)返回t.data.frame,t.default和t.ts*作为函数t()的方法.那么,如果两者都是S3泛型并且t没有t.test方法,那么下面的代码是否返回t检验?

a <- structure(1:4, class = "test")
t(a)
Run Code Online (Sandbox Code Playgroud)

我的预测是t将使用类"test"的默认方法而t.default(a)在逻辑上将转置作为我认为它应该.那时t.test来自哪里?

r

5
推荐指数
1
解决办法
153
查看次数

标签 统计

r ×2

ggplot2 ×1