R ggplot如何显示上个月期间的数据

R ggplot如何显示上个月期间的数据,r,ggplot2,R,Ggplot2,我有这段代码。 我的目标是绘制上个月的数据。 我在网上看到,可以使用scale\u x\u date(limits=as.date 因此,第一步我尝试在指定的时间范围内绘制数据……例如2020-05-01、“2020-09-09” 但是当我把这个代码插入我的ggplot时,我得到了这个错误 无效输入:date\u trans仅适用于类date的对象 你知道怎么了吗 数据帧示例:从csv读取 "date","diff" 2020-01-22,555 2020

我有这段代码。 我的目标是绘制上个月的数据。 我在网上看到,可以使用
scale\u x\u date(limits=as.date
因此,第一步我尝试在指定的时间范围内绘制数据……例如2020-05-01、“2020-09-09” 但是当我把这个代码插入我的ggplot时,我得到了这个错误
无效输入:date\u trans仅适用于类date的对象
你知道怎么了吗

数据帧示例:从csv读取

"date","diff"
2020-01-22,555
2020-01-23,99
2020-01-24,287
2020-01-25,493
...
代码:


使用您的数据,首先尝试以下方法:

library(ggplot2)
#Transform
conf_all_data$date <- as.Date(conf_all$date)
#Code
ggplot(conf_all_data, aes(x=date, y=diff,
                          label=paste(date, "\n" ,  "Confirmed:", diff ))) + 
  geom_bar(stat='identity',fill='blue')  +
  scale_y_continuous(labels = scales::comma)
库(ggplot2)
#转化

确认所有数据$date,因为您的
日期
不是
日期
类型

例如,此代码包含
经济数据集和您的限制日期:

ggplot(data = economics) +
  geom_line(aes(x = date, y = unemploy), 
            color = "#09557f",
            alpha = 0.6,
            size = 0.6) +
  labs(x = "Date", 
       y = "US Unemployed in Thousands",
       title = "Base Plot") +
   scale_x_date(limits = as.Date(c("1999-05-01","1999-09-09"))) +
  theme_minimal()

您得到的错误类似于试图绘制
geom_线(aes(x=as.character(date),y=unemploy)
,这会引发


使用函数修复它。

好的,我刚刚找到了使用lubridate进行减法日期的解决方案。 e、 g

库(lubridate)

日期是的,这是working@Andrew太好了!总是很乐意帮忙:)嘿,鸭子,它起作用了,因为我删除了我有问题的代码:scale_x_date…:)你知道如何修复吗?@Andrew在
scale_x_date()中玩
date_breaks
scale_x_date(date_breaks='1个月')
'scale_x_date(date_breaks='1个月'))'有同样的错误,无论如何我更新了我的问题和屏幕截图。嗯,你的工作示例看起来与我的类似,我还有as.Date函数,
scale\u x\u Date(limits=as.Date
那么为什么不使用我的示例呢?顶部的
日期也是
日期吗?
as.Date
不应该只出现在
比例x_日期中。如果两者都是
日期,那么可能是其他地方的问题。好的,但是如果日期不是日期类型,为什么ggplot可以绘制这个数据框而没有问题?我如何检查date是否为date?您可以使用来检查。
library(ggplot2)
#Transform
conf_all_data$date <- as.Date(conf_all$date)
#Code
ggplot(conf_all_data, aes(x=date, y=diff,
                          label=paste(date, "\n" ,  "Confirmed:", diff ))) + 
  geom_bar(stat='identity',fill='blue')  +
  scale_y_continuous(labels = scales::comma)
ggplot(data = economics) +
  geom_line(aes(x = date, y = unemploy), 
            color = "#09557f",
            alpha = 0.6,
            size = 0.6) +
  labs(x = "Date", 
       y = "US Unemployed in Thousands",
       title = "Base Plot") +
   scale_x_date(limits = as.Date(c("1999-05-01","1999-09-09"))) +
  theme_minimal()
library(lubridate)
date <- As.Date("2009-10-01")


ymd(date) - 5
# [1] "2009-09-26"