回复 第1楼 的 gaoqian:
我用MIfuns里面的reapply算了一下mean. 下面的code有些绕[s:12]
<br />
> library(MIfuns)<br />
> dat <- data.frame(group=c("a", "a", "b", "b", "b"), value=c(3, 4, 6, 7, 8))<br />
> dat<br />
group value<br />
1 a 3<br />
2 a 4<br />
3 b 6<br />
4 b 7<br />
5 b 8<br />
> dat$rows.no <- rep(1:nrow(dat))<br />
> dat$mybreak <- with(dat, reapply(rows.no, group, mean))<br />
> dat$mean <- with(dat, reapply(value, group, mean))<br />
><br />
> ggplot(dat) +<br />
+ geom_point(aes(x = rows.no, y = value, shape = group, size = 2)) +<br />
+ geom_errorbar(aes(x = mybreak, ymin = mean, ymax = mean, size = 1.2)) +<br />
+ opts(axis.title.x = theme_blank()) + # remove x-axis label<br />
+ opts(legend.position = "none") + # remove legends<br />
+ scale_x_continuous(breaks = unique(dat$mybreak), labels = unique(dat$group)) # add new x-axis label<br />
</p>