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

snalve:

我有一个名为“数据”的时间序列数据集,其中包含多年采样日期中几口井的水位高程数据。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轴为“高度”,并且每个井都以不同的颜色绘制。我已经用下面的代码创建了这个图,这让我很满意。

我的问题是我试图用geom_rect覆盖灰色矩形,以显示抽水机开启的时间段。我想我已经很接近了,但是我在日期格式(?)方面一定做错了,因为我不断收到以下错误:

错误:输入无效: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)
micstr:

问题似乎出在您所在的geom_rect地区(没有此情节而绘制)。该网站上的其他“ date_trans”错误表明需要使用设置日期as.Date是的,您在正确的调试区域。这有效:

geom_rect部分的xmin和xmax调用中包装最小和最大值

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)

这让您得到:

3行数据图

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅适用于某些类的接口?

输入类型日期仅适用于手机

Python错误:此方法仅适用于类,不适用于实例

UseMethod(“ compute”)中的错误:没有适用于适用于“ nn”类对象的“ compute”适用方法

R中的错误:没有适用于“ st_centroid”的适用方法应用于“ NULL”类的对象

“错误:无效输入:date_trans仅与Date类的对象一起使用”,同时尝试提供格式为“ year-week” /“%Y-%W”的x轴中断

错误没有适用于“ select_”的适用于“字符”类对象的方法

在ggplot2中绘制矩形-无效的输入:time_trans仅适用于POSIXct类的对象

错误:输入无效:只有在x轴上进行修改时,date_trans才可与Date类的对象一起使用

对象检测MASK RCNN仅适用于2类

UseMethod(“ escape”)中的错误:没有适用于'escape'的适用方法应用于类的对象

UseMethod(“ group_by_”)中的错误:没有适用于'group_by_'的适用方法应用于类“ list”的对象

R的横杠和回合不适用于Date类吗?

团结返回错误“没有适用于'unite_'的适用方法”应用于类“ c('double','numeric')”的对象

错误的time_trans仅在R中适用于posixct类的对象

错误没有适用于“ ggplot_build”的适用于“网格”类对象的方法

R语言错误:“ date_trans仅适用于日期类的对象”(ggplot2)

错误:`mutate()`输入`编码`问题。x没有适用于“字符”类对象的“选择”方法

WPF AccessText输入按钮仅适用于Alt

CSS类仅适用于“类之间”类实例

复制功能仅适用于某些输入

无效输入:date_trans 仅适用于 Date 类的对象

IE 11 粘贴仅适用于输入字段

ListView 仅适用于 Android 错误

角度:无线电输入仅适用于数值

在 r 中向背景图像添加半透明层时出现错误:无效输入:date_trans 仅适用于类 Date 的对象

特质是否仅适用于对象?

类型错误:“datetime.date”对象的描述符“strftime”不适用于“str”对象

适用于“Date”类对象的 recode() 的替代函数