2012-11-08 31 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的設計師在未來找到一些修復它的方法(儘管現在當然很難做到!) –