从scale_size中排除新图层

时间:2015-05-30 21:32:08

标签: r ggplot2 layer mean

我绘制了一个散点图,其点大小按频率缩放:

g<-ggplot(d, aes(x=Treatment, y= Seam.Cell.Number, size=Frequency))+geom_point(aes(colour=Strain))+ scale_size_continuous(range = c(3, 10), breaks=c(0,1, 2, 3, 4, 5,6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50))+guides(size=FALSE)

现在我正在尝试在顶部绘制带有标准误差条的方法。我已经在csv文件的列中计算了均值和标准误差。所以到目前为止我一直在尝试:

g+geom_point(aes(x=Treatment,y=Mean))+geom_errorbar(aes(ymin=Mean-Standard.Error, ymax=Mean+Standard.Error, width=.4))+theme(axis.text.x = element_blank())+theme(legend.key = element_rect(colour = "black"))

g+layer(data=d, mapping=aes(x=Treatment,y=Mean), geom="point")+geom_errorbar(aes(ymin=Mean-Standard.Error, ymax=Mean+Standard.Error), width=.4)+ylab("Seam Cell Number")

但他们都给了我非常胖的错误条/数据点。它们似乎受到我在物体g中缩小尺寸的影响。我试图修改错误栏的大小和宽度,我试图修改数据点的大小,这两个代码的最后几位,但无济于事。有没有办法取消&#39;这个图层的size命令?

enter image description here

1 个答案:

答案 0 :(得分:1)

如果你颠倒ggplot的顺序,你可以避免错误条上的大小失真。

没有可重复的数据,我做了一些。

df <- data.frame(Treatment = (1:100), Seam.Cell.Number = 3:102, Frequency = 5:104,
Strain = rep(c("A", "B", "C", "D"), 25))

std <- function(x) sd(x)/sqrt(length(x))
Mean <- mean(df$Treatment)

df$Standard.Error <- std(df$Treatment)

g <- ggplot(df, aes(x = Treatment, y = Seam.Cell.Number)) + 
  geom_point(aes(x=Treatment, y=Mean)) + 
  geom_errorbar(aes(ymin=Mean-df$Standard.Error, ymax=Mean+df$Standard.Error, width=.4))+
  theme(axis.text.x = element_blank())+
  theme(legend.key = element_rect(colour = "black"))

g +  geom_point(aes(colour=Strain)) + 
  scale_size_continuous(range = c(3, 10), breaks=c(0,1, 2, 3, 4, 5,6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
                                                   16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
                                                   29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42,
                                                   43, 44, 45, 46, 47, 48, 49, 50)) + 
  guides(size=FALSE)

enter image description here