2013-05-16 40 views
9

Tôi có một câu hỏi rất đơn giản ở đây. Tôi có một bộ dữ liệu từ 2009-2012. Tôi muốn vẽ dữ liệu với các khía cạnh. Tôi đã tạo ra cốt truyện mặt như sau.Hiển thị trục x trên ggplot chỉ trong tháng R

R-code

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

Sản lượng của mã R trên là như sau:

enter image description here

Trên trục X Tôi chỉ muốn hiển thị tháng. Theo mặc định nó được hiển thị tháng và năm. Có cách nào tôi có thể thoát khỏi năm?

Mã đầy đủ tái sản xuất như sau:

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() 

Cảm ơn.

Trả lời

13

Khi giá trị x của bạn là ngày bạn có thể sử dụng scale_x_date() để thay đổi định dạng nhãn. Cần có thư viện scales để có định dạng ngắt và nhãn tốt hơn.

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

Cảm ơn câu trả lời của bạn. Tuy nhiên, khi tôi cố gắng sử dụng tôi nhận được một lỗi 'Lỗi: Invalid input: date_trans làm việc với các đối tượng của lớp Date only'. Định dạng của ngày tôi đang sử dụng là POSIXct. –

+0

@ Jdbaba Sau đó, bạn nên sử dụng scale_x_datetime(). Cập nhật câu trả lời của tôi –

+1

Cảm ơn bạn rất nhiều. 'scale_x_datetime' hoạt động hoàn hảo. –

Các vấn đề liên quan