Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:无效输入:date_trans仅适用于类date的对象_R_Ggplot2 - Fatal编程技术网

错误:无效输入:date_trans仅适用于类date的对象

错误:无效输入:date_trans仅适用于类date的对象,r,ggplot2,R,Ggplot2,我有一个称为“数据”的时间序列数据集,其中包含多年采样日期内几口井的水位数据。data.frame的头部如下所示: Date Well Elev 1 2002-05-23 MW-3 929.04 2 2002-05-29 MW-3 929.39 3 2002-05-31 MW-3 929.37 4 2002-06-05 MW-3 929.

我有一个称为“数据”的时间序列数据集,其中包含多年采样日期内几口井的水位数据。data.frame的头部如下所示:

           Date            Well   Elev
1    2002-05-23            MW-3 929.04
2    2002-05-29            MW-3 929.39
3    2002-05-31            MW-3 929.37
4    2002-06-05            MW-3 929.36
5    2002-06-12            MW-3     NA
6    2002-06-13            MW-3 929.47
7    2002-06-19            MW-3 929.42
8    2002-06-26            MW-3 930.02
9    2002-07-05            MW-3 930.00
我试图使用ggplot来绘制每口井随时间变化的水位,这样我的x轴是“日期”,y轴是“Elev”,每口井都以不同的颜色绘制。我用下面的代码创建了这个图,我很满意

我的问题是,我试图用几何矩形覆盖灰色矩形,以显示油井泵开启的周期。我想我已经很接近了,但我一定是在日期格式(?)方面出了问题,因为我一直遇到以下错误:

错误:无效输入:date_trans仅适用于类date的对象

有什么帮助吗?提前谢谢

这是我的密码:

#Import and fix up data
Data = read.csv("water_elevation_for_R_date.csv", stringsAsFactors=FALSE)
colnames(Data)[1] <- "Date"
Data$Date = as.Date(Data$Date, format = "%m/%d/%Y")
Data$Well <- as.factor(Data$Well)
Data$Elev <- as.numeric(Data$Elev)

#Load ggplot and scales
library(ggplot2)
library(scales)

#Create graph
ggplot(data= Data, aes(x = Date, y = Elev, group = Well, colour = Well)) +
geom_line(size = 0.75) +
xlab("") + ylab("Elevation (ft.)") +
scale_color_brewer(palette = "Spectral") +
scale_x_date(breaks = date_breaks("2 year"),
             labels = date_format("%Y")) +
theme_bw()+
theme(plot.background = element_blank(), 
      panel.grid.major = element_blank(), 
      panel.grid.minor = element_blank(), 
      panel.border = element_blank(), 
      axis.line.x = element_line(color = "black"),
      axis.line.y = element_line(color = "black")) +
geom_rect(data = Data, 
          aes(xmin = "2004-04-29", 
              xmax = "2004-12-20",
              ymin = -Inf, 
              ymax = Inf),
          fill = "gray", 
          alpha = 0.5)
#导入和修复数据
数据=read.csv(“水高度”表示日期.csv),StringsAsAffactors=FALSE)

colnames(Data)[1]问题似乎出在您的
geom\u rect
区域(它在没有这个的情况下绘图)。其他“date\u trans”错误指出需要将日期设置为
as.date
。是的,你在正确的调试区域。这项工作:

将最小值和最大值包装在xmin和xmax调用中
geom_rect
部分:

aes(xmin = as.Date("2004-04-29", "%Y-%m-%d"), 
    xmax = as.Date("2004-12-20",  "%Y-%m-%d"),
下面的代码供其他人使用

我只按照@YourEconProf的建议创建了三条数据线

#Import and fix up data
#Data = read.csv("water_elevation_for_R_date.csv", stringsAsFactors=FALSE)
#Date            Well   Elev
#1    2002-05-23            MW-3 929.04
#2    2002-05-29            MW-3 929.39
#3    2002-05-31            MW-3 929.37
# etc...
Data = data.frame(Date = c(as.Date("2002-05-23", "%Y-%m-%d"),
                           as.Date("2002-05-29", "%Y-%m-%d"),
                           as.Date("2002-05-31", "%Y-%m-%d")),
                  Well = c("MW-3","MW-3","MW-3"),
                  Elev = c(929.04, 929.39, 929.37))

colnames(Data)[1] <- "Date"
Data$Date = as.Date(Data$Date, format = "%m/%d/%Y")
Data$Well <- as.factor(Data$Well)
Data$Elev <- as.numeric(Data$Elev)

#Load ggplot and scales
library(ggplot2)
library(scales)

#Create graph
ggplot(data= Data, aes(x = Date, y = Elev, group = Well, colour = Well)) +
  geom_line(size = 0.75) +
  xlab("") + ylab("Elevation (ft.)") +
  scale_color_brewer(palette = "Spectral") +
  scale_x_date(breaks = date_breaks("2 year"),
               labels = date_format("%Y")) +
  theme_bw()+
  theme(plot.background = element_blank(), 
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(), 
        panel.border = element_blank(), 
        axis.line.x = element_line(color = "black"),
        axis.line.y = element_line(color = "black")) +
  geom_rect(data = Data, 
            aes(xmin = as.Date("2004-04-29", "%Y-%m-%d"), 
                xmax = as.Date("2004-12-20",  "%Y-%m-%d"),
                ymin = -Inf, 
                ymax = Inf),
            fill = "gray", 
            alpha = 0.5)
#导入和修复数据
#数据=read.csv(“水高度”表示日期.csv),StringsAsAffactors=FALSE)
#日期井Elev
#1 2002-05-23兆瓦-3929.04
#2 2002-05-29兆瓦-3929.39
#3 2002-05-31兆瓦-3929.37
#等等。。。
数据=数据帧(日期=c)(截至日期(“2002-05-23”,“Y-%m-%d”),
截至日期(“2002年5月29日,%Y-%m-%d”),
截至日期(“2002年5月31日,%Y-%m-%d”),
井=c(“MW-3”、“MW-3”、“MW-3”),
标高=c(929.04929.39929.37))

colnames(Data)[1]你能提供
dput(Data)
的输出吗?嗨,J.Con,对不起,我是新来这里发帖的,而“dput(Data)”的输出对于评论和原始帖子来说都太长了。关于如何获得输出有什么建议吗?请阅读本文获得一些提示。尝试使用数据中的前三个观察值,然后运行
dput(data)
非常感谢!我曾尝试使用as.Date,但没有意识到必须指定格式。