Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

set date range in ggplot

Tags:

my data frame is z:

library(ggplot2); library(scales) z <-     structure(list(Month = structure(c(14975, 15095, 15156, 15187,  15248), class = "Date"), Value = c(1, 1, 1, 6, 1)), .Names = c("Month",  "Value"), row.names = c(NA, 5L), class = "data.frame")   ggplot(z, aes(Month, Value)) +      geom_bar(fill="orange",size=.3,  stat="identity", position="identity") +     geom_smooth(data=z,aes(Month,Value,group=1), method="lm", size=2, color="navyblue") +      scale_x_date(breaks = "1 month", labels=date_format("%b-%Y")) 

This works ok but I really like my data range between 1/1/2011 and 1/1/2013. My example date is from 1/12011 to 10/1/2011. Is there an easy way to force the date range from 1/1/2011 to 1/1/2013 in ggplot?

like image 432
user1471980 Avatar asked Jan 04 '13 18:01

user1471980


1 Answers

The documentation at ?scale_x_date mentions that it accepts all "typical" continuous scale arguments, including limits:

library(scales) ggplot(z, aes(Month, Value)) +      geom_bar(fill="orange",size=.3,  stat="identity", position="identity") +      geom_smooth(data=z,aes(Month,Value,group=1), method="lm", size=2, color="navyblue") +      scale_x_date(date_breaks = "1 month",                   labels=date_format("%b-%Y"),                  limits = as.Date(c('2011-01-01','2013-01-01'))) 
like image 188
joran Avatar answered Oct 03 '22 03:10

joran