2012-09-16 51 views
2

當缺少數據或日期中存在較大間隙時,ggplot會產生不連續的線。如何在不連續的日期中獲得ggplot2中的連續線

如:

enter image description here

q.data<-structure(list(date = structure(c(15544, 15546, 15547, 15548, 
15550, 15552, 15554, 15556, 15575, 15580, 15587, 15588, 15589, 
15593, 15596), class = "Date"), data = c(NA, 0.2, 0.2, 0.3, 0.6, 
0.7, 0.8, 0.9, NA, NA, 1, 1, 1.1, 1.7, 2)), .Names = c("date", 
"data"), row.names = c(NA, -15L), class = "data.frame") 

q.data$date<-as.Date(q.data$date, format="%Y-%m-%d") 

q.plot<-qplot(data=q.data, 
       x=date, 
       y=data)+geom_line() 

print(q.plot) 

我正在尋找一種方法來強制絡繹不絕。

+0

本博爾克表示,這是一個問題與新手並通過其刪除解決。但是,我有許多變量/列與NAs出現在不同的時間點,這排除了我的數據整體上使用na.omit。 –

+1

沿着stat_omit的線條的東西很適合這個。 –

+1

我開始嘗試將'stat_identity'修改爲'stat_omit'(即,使'stat_omit'只是'stat_identity'的一個包裝),但我沒有得到很多... –

回答

3

我不認爲這真的發生在日期的大缺口在沒有NA sNA值似乎是你的問題。

我覺得

q.plot <- qplot(data=na.omit(q.data),...) 

應該工作,但我試過(這工作)的

print(q.plot %+% na.omit(q.data)) 

enter image description here

PS:1,這將是稍微更好使用dput來發布您的數據。 2.我的解決方案也擺脫了NA值在系列的開始和結束時,這可能會成爲問題...

+0

非常感謝你的答案,以創紀錄的速度!確實,NAs似乎是問題所在,然而,因爲我有許多變量,我希望以相同的方式進行繪製,NAs出現在每個變量的不同時間點,所以這種解決方案會很尷尬,因爲它會去除所有含有NA的行或必須分別爲每個要繪製的變量完成。對不起,我沒有在我的問題中指定這個。 –