我正在尝试在个人的特定日期范围内绘制数据。我已经粘贴了以前有效的示例代码,但是我没有覆盖所有数据,只是在2016年11月30日之后会发生什么。我已经尝试了这里显示的解决方案(Select Data After Specific Date),但我得到“错误:输入无效: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()
答案 0 :(得分:2)
尝试对数据框进行子集化,同时将其提供给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()
答案 1 :(得分:0)
创建第二个子数据帧可能更简单,更重复。将类(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()
此方法可让您将来方便地调用子集以进行统计和/或更多绘制。