2017-01-23 8 views
5

私は、何年ものサンプリング日付にわたっていくつかの井戸の水面標高データを含む "データ"という時系列データセットを持っています。 data.frameのヘッドは次のようになります。エラー:入力が無効です:date_transはDateクラスのオブジェクトとしか動作しません

  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 

私は、x軸は「日付、」私のy軸はあるになるように、各ウェルのための時間をかけて水の上昇をプロットするためにggplotを使用しようとしています「Elev」と各ウェルは異なる色でプロットされています。私は下のコードでこのプロットを作成しました。それは私の満足です。

私の問題は、井戸ポンプが作動していた期間を表示するために、灰色の四角形をgeom_rectでオーバーレイしようとしていることです。私は、私は非常に近いと思うが、私は、日付の書式を間違って何かをしなければならない、私は次のエラーを取得しておくために(?):

Error: Invalid input: date_trans works with objects of class Date only

任意のヘルプ?前もって感謝します!

はここに私のコードです:

#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) 
+0

をあなたは 'dput(データ)'の出力を提供することができますか? –

+0

こんにちはJ.コン、申し訳ありません - 私はここに投稿するのが初めてで、 'dput(データ)'の出力はコメントと元の投稿の両方で長すぎます。どのように出力を得るための任意の提案? – snalven

+0

いくつかのヒントについては、これをお読みください。 https://www.r-bloggers.com/three-tips-for-posting-good-questions-to-r-help-and-stack-overflow/ –

答えて

4

問題は、あなたのgeom_rectエリア内にあるように見えます(それがこのなしプロット)。他の "date_trans"エラーon this siteは、as.Dateで日付を設定するために必要です。はい、あなたは正しいデバッグエリアにいました。これは動作します:@YourEconProfが示唆したように、私は3本のデータ線のみ作成

OTHERSについては、以下の

aes(xmin = as.Date("2004-04-29", "%Y-%m-%d"), 
    xmax = as.Date("2004-12-20", "%Y-%m-%d"), 

CODEを使用するには:

geom_rectセクションでXMINとxmaxの呼び出しであなたの最小値と最大値をラップ。あなたにこの取得

#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) 

3lines of data chart

+1

おかげでmicstr!私はas.Dateを使用しようとしましたが、フォーマットを指定しなければならないことに気付きませんでした。 – snalven

+0

こんにちは、私はあなたが新しいことを知っています。私の答えが問題を解決したと感じる場合は、緑色のチェックマークをクリックして「受け入れ済み」とマークしてください。ありがとう。 – micstr

関連する問題