1

それぞれが単純に 4 つの列で構成される 3 つのテキスト ファイルがあります (各列には 477 の値があります)。私はそれらを次のようにプロットすることができました:各テキストファイルから最初の列をプロットし、残りの列で同じことを行います(添付の図)。ご覧のとおり、x 軸は数値として表示されますが、日付として表示する必要があるため、必要な日付を指定しようとしましたが、長さに関連するエラーが発生しました。2010 年 3 月 9 日から 2012 年 12 月 23 日までの日付範囲の長さは、値 477 と同じであると確信しています。

ref= read.table("D:\\AS_asc.txt", sep="",header=TRUE)
sour1 = read.table("D:\\rre.txt", sep="",header=TRUE) 
  sour2= read.table("D:\\re_asc.txt", sep="",header=TRUE)
  starttime <- strptime("20100903", "%Y%m%d")
   endtime <- strptime("20111223 ", "%Y%m%d")
     xrange <- c(starttime, endtime)
   columns <- paste0("X", 1:4)
   par(mfrow=c(2,2))
  lapply(
 columns,
  function(column)
  {

 plot(xrange,
   ref[[column]],

   ylab = "[[column]]",
  xlab = "[[column]]",
   col  = 2 , main = paste( column )
 )

points(sour1[[column]], col = 'green')
 points( sour2[[column]], col = 'blue')

 }
 )

このエラーが発生しました:

 Error in xy.coords(x, y, xlabel, ylabel, log) : 
 'x' and 'y' lengths differ

私のデータのサンプル:

        "X0" "X1" "X2" "X3" 
  0.0369809285234571 0.0222775883686665 0.031094652297596 0.0814025488998284 
4

1 に答える 1

2

問題は次の行です: xrange <- c(starttime, endtime). これにより、日付が 2 つだけのベクトルが作成されます。これらの 2 つの日付を 477 データのベクトルに対してプロットしようとしているため、エラーが発生します。解決策は、データと一致する 477 の日付のシーケンスを作成することです。xrange <- seq(from=as.Date(starttime), to=as.Date(endtime), by=1)

pointsまた、日付ベクトルを x として含めるように要求を修正しました。

ref= data.frame(matrix(runif(477*4),ncol=4))    #dummy random data
sour1 = data.frame(matrix(runif(477*4),ncol=4)) #dummy random data
sour2= data.frame(matrix(runif(477*4),ncol=4))  #dummy random data
starttime <- strptime("20100903", "%Y%m%d")
endtime <- strptime("20111223 ", "%Y%m%d")
xrange <-  seq(from=as.Date(starttime), to=as.Date(endtime), by=1) #create date vector
columns <- paste0("X", 1:4)
par(mfrow=c(2,2))
lapply(
 columns,
  function(column)
  {
   plot(xrange,
   ref[[column]],

   ylab = "Unit of the y data",    #more descriptive label
   xlab = "Date",                   #more descriptive label
   col  = 2 , main = paste(column)
   )
points(xrange, sour1[[column]], col = 'green') #add date range
points(xrange, sour2[[column]], col = 'blue') #add date range
 }
)

ここに画像の説明を入力

于 2013-04-13T11:20:17.283 に答える