2013-05-16 29 views
9

ここでは非常に簡単な質問があります。私は2009年から2012年のデータセットを持っています。ファセットを使ってデータをプロットする必要があります。私は以下のように面取りされたプロットを作成しました。月にggplotのx軸を表示するのはR

R-コード

ggplot(al02428400,aes(x=date,y=as.numeric(Discharge)))+geom_line()+ylab("Discharge(cfs)")+facet_wrap(~Year,scales=("free_x"))+theme_bw() 

次のように上記のRコードの出力は次のようになります。私は月だけ表示したいX軸上

enter image description here

。デフォルトでは月と年が表示されます。私が年を取り除く方法はありますか?次のように

完全に再現可能なコードは次のとおりです。

library(ggplot2) 

url <- "http://nwis.waterdata.usgs.gov/usa/nwis/uv/?cb_00060=on&cb_00065=on&format=rdb&period=&begin_date=2009-01-01&end_date=2012-12-31&site_no=02428400" 
download.file(url,destfile="Data load for stations/data/alabamariver-at-monroeville-2009.txt") 

al02428400 <- read.table("Data load for stations/data/alabamariver-at-monroeville-2009.txt",header=T,skip=1,sep="\t") 
head(al02428400) 

sapply(al02428400,class) 
al02428400 <- al02428400[-1,] 

names(al02428400)<- c("Agency","SiteNo","Datetime", "TZ","Discharge","Status","Gageheight","gstatus") 
al02428400$date <- strptime(al02428400$Datetime, format="%Y-%m-%d %H:%M") 

al02428400$Discharge <- as.numeric(as.character(al02428400$Discharge)) 
al02428400$Year <- as.numeric(format(al02428400$date, "%Y")) 
ggplot(al02428400,aes(x=date,y=as.numeric(Discharge)))+geom_line()+ylab("Discharge(cfs)")+facet_wrap(~Year,scales=("free_x"))+theme_bw() 

感謝。

答えて

13

x値が日付であるため、scale_x_date()を使用してラベルのフォーマットを変更できます。ライブラリscalesは、改行とラベルの書式を整えるために必要です。

library(scales) 
+scale_x_datetime(labels = date_format("%b")) 
+0

ご回答ありがとうございます。しかし、私はそれを使用しようとすると、エラー 'エラー:無効な入力:date_transクラスのオブジェクトのみで動作します'を取得します。私が使用している日付の形式はPOSIXctです。 –

+0

@Jdbaba次に、scale_x_datetime()を使用してください。更新された私の答え –

+1

ありがとうございました。 'scale_x_datetime'は完璧に動作します。 –

関連する問題