2016-11-30 30 views
0

ggplotを使ってRに添付されたデータをプロットしようとしています。プロットにx軸ラベルとして "months"を追加する

link of the data

ここに私のスクリプトです:

library(ggplot2) 

dat<-read.csv("dat.csv",header=TRUE,sep=",") 
dat<-data.frame(dat) 
dat$min<-dat$zam-sd(dat$zam) 
dat$max<-dat$zam+sd(dat$zam) 
ggplot(dat,aes(dd,zam)) 
+geom_ribbon(aes(ymin=min,ymax=max),fill="skyblue") 
+geom_line(color="steelblue4",lwd=1) 
+theme(panel.background=element_rect(fill="white"), axis.line=element_line(colour="black"), panel.border = element_rect(colour = "black", fill=NA, size=5)) 

質問:

私はx軸はヶ月(12月-1月)になりたいです。しかし、データはうるう年です。私はこのコマンドを試してエラーを出しました。

dat$date <- seq(as.Date("2012/1/1"), as.Date("2012/12/31"), "month") 

エラー:

Error in $<-.data.frame (*tmp* , "date", value = c(15340, 15371, 15400, : replacement has 12 rows, data has 366

誰もがこれを行うための簡単な方法を提案することができます。

答えて

1

これは、日付にあなたを取得します。次に

dat$date <- as.Date(strptime(paste("2012", dat$dd), format="%Y %j")) 

のようなものをggplot:

ggplot(dat, aes(date, zam) + 
geom_ribbon(aes(ymin = min, ymax = max),fill = "skyblue") + 
geom_line(color = "steelblue4", lwd = 1) + 
scale_x_date(date_labels = "%B", date_breaks = "1 month") 
+0

答えに多くの感謝! – ichabod

1

多分これが行います。

dat$date <- as.Date(dat$dd,origin="2012-01-01") 
ggplot(dat,aes(date,zam))+ 
    geom_ribbon(aes(ymin=min,ymax=max),fill="skyblue")+ 
    geom_line(color="steelblue4",lwd=1)+ 
    theme(panel.background=element_rect(fill="white"), 
      axis.line=element_line(colour="black"))+ 
    scale_x_date(date_labels = "%b",date_breaks = "1 month") 

enter image description here

+0

のための多くのおかげで回答。これも動作します! – ichabod

関連する問題