2014-10-17 67 views
0

我是新來GGPLOT2但決定去學習它,因爲我喜歡它的簡單性和視覺效果。我有幾個城市的降雨時間序列(動物園)。看着其他的問題,我發現瞭如何重塑,並繪製它:添加趨勢線,部分地塊

df <- data.frame(time = time(rain.yr), 
       city = rep(colnames(rain.yr), each = nrow(rain.yr)), 
       value = as.vector(rain.yr)) 
ggplot(df, aes(x=time, y=value)) + 
geom_line() + 
facet_wrap(~ city, ncol=4) 

我真的很喜歡的最終結果在視覺效果方面,因爲它提供了每個城市,但隨着全球軸一個情節。我發現如何添加趨勢:stat_smooth(method="lm")

問題是,我想添加趨勢線到一些情節,而不是所有的情節;只是那些趨勢顯着的人(我有一個向量有零和sig /非sig的向量)。

我知道如何與基礎圖形(使用參數和一個循環來繪製,只添加行,如果趨勢是顯著),但有在GGPLOT2做這件事的方式做到這一點?

+0

無法重現,但您應該能夠獲取您的數據的子集並在'stat_smooth(data = ...)'中使用它以僅保留您想要繪製直線的數據。 – konvas 2014-10-17 13:10:11

+0

謝謝,但我不明白如何做到這一點;我怎樣才能用'data ='選擇一些城市?如果我試着做'stat_smooth(method =「lm」,data =「Berlin」)'我得到'錯誤:ggplot2不知道如何處理類字符數據。我嘗試在df中添加一個名爲「sigs」的列(用零和一),並執行'stat_smooth(method =「lm」,data = df $ sigs',但這只是給出了錯誤:ggplot2不知道如何處理帶班numeric'的數據... – sbg 2014-10-17 13:42:39

+0

建議提供樣本數據,因此這裏的人可以嘗試 – KFB 2014-10-17 13:52:16

回答

1

由於作爲被提出,只是創建要平滑的子集的數據幀,並用其作爲數據stat_smooth()

subdf<-diamonds[which(diamonds$clarity %in% c('SI2','SI1')),] 
ggplot(diamonds,aes(x=carat,y=depth))+geom_point() + facet_wrap(~clarity) + geom_smooth(data=subdf)