r-使用ggplot2绘制特定日期范围



我正在尝试为个人绘制特定日期范围内的数据。我在下面粘贴了以前有效的示例代码,但我没有把所有数据都挂在墙上,只是2016年11月30日之后会发生什么。我尝试了这里显示的解决方案(选择特定日期之后的数据(,但我得到了"错误:无效输入:Date_trans仅适用于Date类的对象。"有什么想法吗?

mydf<- data.frame(Date = as.Date(Subject$date, format = "%m/%d/%Y"),
variable1 = (Subject$var1),
variable2 = (Subject$var2), 
variable3 = (Subject$var3),
variable4 = (Subject$var4))
ggplot(mydf, aes(Date > "2016-11-30", variable1)) + 
geom_point() + 
stat_smooth(color = "blue", fill = "lightskyblue") +
theme(axis.title.x = element_blank()) + 
ylab("") + xlab("")+ 
ggtitle("Variable 1 units") + 
scale_x_date(date_breaks = "months", 
date_labels = "%b%y") + 
theme_hc()

尝试在将数据帧馈送到ggplot时对其进行子集设置,如下所示:

ggplot(data=mydf[which(mydf$Date>"2016-11-30"),],
aes(x=Date, y=variable1)) + 
geom_point() + 
stat_smooth(color = "blue", fill = "lightskyblue") +
theme(axis.title.x = element_blank()) + 
ylab("") + xlab("")+ 
ggtitle("Variable 1 units") + 
scale_x_date(date_breaks = "months", 
date_labels = "%b%y") + 
theme_hc()

创建第二个子集数据帧可能更简单、更可复制。正在将类(mydf$Date(转换为POSIXct,并假设前面的评论者提到的"format="%Y-%m-%d":

mydf$Date <- as.POSIXct(mydf$Date, format="%Y-%m-%d")
after1130 <- subset(mydf, Date > "2016-11-30")
ggplot(data=after1130, +
aes(x=Date, y=variable1)) + 
geom_point() + 
stat_smooth(color = "blue", fill = "lightskyblue") +
theme(axis.title.x = element_blank()) + 
ylab("") + xlab("")+ 
ggtitle("Variable 1 units") + 
scale_x_date(date_breaks = "months", 
date_labels = "%b%y") + 
theme_hc()

此方法允许您在将来轻松调用子集进行统计和/或更多绘图。

最新更新