2017-05-10 69 views
0

我想用ggplot來繪製時間序列數據的一部分。例如,假設我只想繪製這些數據的最後五個日期。有沒有提前在ggplot中指定此數據而不提前對數據進行子集化?我嘗試使用xlim,但它沒有奏效。ggplot2:如何只繪製時間序列的一部分

date <- c("2016-03-24","2016-03-25","2016-03-26","2016-03-27","2016-03-28", 
       "2016-03-29","2016-03-30","2016-03-31","2016-04-01","2016-04-02") 
Temp <- c(35,34,92,42,21,47,37,42,63,12) 
df <- data.frame(date,Temp) 

我嘗試:

ggplot(df) + geom_line(aes(x=date,y=Temp)) + xlim("2016-03-29","2016-04-02") 

我的日期格式爲POSIXct

+1

你可能想看看['coord_cartesian'(HTTP://ggplot2.tidyverse。 org/reference/coord_cartesian.html)文檔。 – mikeck

回答

1

您必須輸入xlim值爲as.Dateas.POSIXct()。這是你想要的嗎?

df$date <- as.Date(df$date, format= "%Y-%m-%d", tz = "UTC") 
ggplot(df) + geom_line(aes(x=date,y=Temp)) + 
xlim(as.Date(c("2016-03-30", "2016-04-02"), tz = "UTC", format = "%Y-%m-%d")) 

enter image description here

PS:請注意,您會收到以下警告:

Warning message: 
Removed 5 rows containing missing values (geom_path)