2012-11-08 33 views
1

我的代码如下:我的stat_summary是否考虑了计算平均值的所有点数?

ggplot(data=ICL1, aes(x=as.Date(AÑO_MES), y=IndICL1, group=RUN_FM, colour=RUN_FM)) + 
ylim(0,150)+ xlab("Periodo") + ylab("% Cobertura") + 
geom_hline(aes(yintercept=100),colour="red")+ 
stat_summary(fun.y = mean, geom="line",size=1.5 , mapping = aes (group = 1),colour="green") + geom_point() 

的事情是,有了这个,我收到以下消息:*

这是因为这些点是*“包含遗漏值(stat_summary)删除了153行”超出我的ylim(0,150),我这样使用它,因为比例尺可以正确显示我想显示的内容。

我想知道如果用这个信息,stat_summary正在考虑这个缺失点来计算平均值吗?如果不是,我该怎么做才能在平均值计算中考虑这个点,但是在图中没有显示它们。

回答

7

使用coord_cartesian()来更改显示的范围。正如您发现的那样,ylim()xlim()会影响实际用于计算和生成绘图的数据范围。

在你的情况,你应该用coord_cartesian(ylim=c(0, 150))替换ylim

+0

'ylim'的帮助文件非常清楚地表明了这一点(以及正确的选择)。 – mnel

+1

需要在文档中频繁说明(加上人们错误的重量)强烈表明这种特殊的设计决策是错误的。我希望ggplot2的设计师在未来找到一些修复它的方法(尽管现在当然很难做到!) –