2015-10-06 120 views
1

R中的多個情節我有大約20年的日常數據的時間序列。它包含日期,降雨量和其他數據。 我正在嘗試繪製降雨量與時間的關係圖。我想要獲得20個不同顏色的線條圖,並且會生成一個圖表,顯示一個圖表中的年份。我嘗試了下面的代碼,但它沒有給我想要的結果。任何建議來解決我的問題將是最受歡迎的繪製了不同的日曆日期

library(ggplot2) 
library(seas) 
data(mscdata) 
p<-ggplot(data=mscdata,aes(x=date,y=precip,group=year,color=year)) 
p+geom_line()+scale_x_date(labels=date_format("%m"),breaks=date_breaks("1 months")) 
+3

我勸你重新創建與20日線在20種顏色的曲線。它很可能看起來很亂。你可能想看看'facet_wrap'或'facet_grid'。 – Jaap

+0

我知道它會看起來凌亂,但我想做這個陰謀。 – Joan

+0

它不僅看起來很混亂,而且年份會重疊,因此只有最大和最近的年份纔會顯現。你能解釋一下你感興趣嗎?乾溼兩年?每月平均降雨量? – RHA

回答

0

它看起來不錯,但這裏是一種方法。我們首先迫使數據到日期在同一年:

mscdata$dayofyear <- as.Date(format(mscdata$date, "%j"), format = "%j") 

然後我們情節:

library(ggplot2) 
library(scales) 
p <- ggplot(data = mscdata, aes(x = dayofyear, y = precip, group = year, color = year)) 
p + geom_line() + 
    scale_x_date(labels = date_format("%m"), breaks = date_breaks("1 months")) 

enter image description here

0

雖然我@Jaap同意,這未必是最好的方式描繪這些數據,嘗試以下操作:

mscdata$doy <- as.numeric(strftime(mscdata$date, format="%j")) 

ggplot(data=mscdata,aes(x=doy,y=precip,group=year)) + 
geom_line(aes(color=year)) 

enter image description here

0

雖然給出的答案是好回答您的問題,因爲它代表,我不認爲這將解決您的問題。我認爲你應該以不同的方式呈現數據。 @Jaap已經建議使用方面。舉例來說,這種方法:

#first add a month column to your dataframe 
mscdata$month <- format(mscdata$date, "%m") 

#then plot it using boxplot with year on the X-axis and month as facet. 
p1 <- ggplot(data = mscdata, aes(x = year, y = precip, group=year)) 
p1 + geom_boxplot(outlier.shape = 3) + facet_wrap(~month) 

這會給你一個圖表每月,顯示每年相鄰的降雨量。因爲我使用boxplot,所以降雨中的高峯顯示爲點(「正常」降雨事件在框內)。其他可能的方法是使用stat_summary