as.yearmon()
次のことが私のために働くので、おそらくあなたは正しく使用していません( dat
Gavinの答えから使用):
library(zoo)
dat$date <- as.yearmon(dat$date, "%YM%m")
したがって、物事を正しくプロットするために作業を進めます。
あなたのデータ:
dat <- read.table(text = "date x x2
1975M1 112.44 113.12
1975M2 113.1 114.36
1975M3 115.04 114.81
1975M4 117.65 115.35
1975M5 119.5 116.92
1975M6 121.4 118.56
1975M7 120.64 118.97
1975M8 119.12 119.84
1975M9 118.91 120.59
1975M10 120.58 122.3
1975M11 121.26 123.35
1975M12 122.34 123.33", header = TRUE)
「zoo」パッケージからのxts
使用への変換。as.yearmon()
library(xts) # Will also load zoo
dat.xts <- xts(dat[-1],
order.by = as.yearmon(dat$date, "%YM%m"))
dat.xts
# x x2
# Jan 1975 112.44 113.12
# Feb 1975 113.10 114.36
# Mar 1975 115.04 114.81
# Apr 1975 117.65 115.35
# May 1975 119.50 116.92
# Jun 1975 121.40 118.56
# Jul 1975 120.64 118.97
# Aug 1975 119.12 119.84
# Sep 1975 118.91 120.59
# Oct 1975 120.58 122.30
# Nov 1975 121.26 123.35
# Dec 1975 122.34 123.33
データのプロット:
plot.zoo(dat.xts)

plot.zoo(dat.xts,
plot.type="single",
col = c("red", "blue"))

更新:独自の軸を指定する
使用するサンプルデータを次に示します(SOについて質問する場合は、他の人が問題を複製して対処しやすくなるため、通常、このようなサンプルデータを共有すると便利です)。この例では、実際には必要ないため、「xts」パッケージの使用をスキップしていることに注意してください。
set.seed(1)
dat <- data.frame(date = paste0(rep(1975:1977, each = 12),
"M", rep(1:12, times = 3)),
x1 = runif(36, min = 100, max = 140),
x2 = runif(36, min = 100, max = 140))
library(zoo) # xts is actually unnecessary if this is all you're doing
# Convert your data to a `zoo` object
dat.z <- zoo(dat[-1], order.by = as.yearmon(dat$date, "%YM%m"))
これは、次のコマンドで取得されるデフォルトのプロットですplot(dat.z, screen = 1, col = 1:2)
。

あなたのコメントから、あなたは毎月のラベルのようなものが欲しいように思えます。
データをプロットしますが、x軸を次のように抑制しますxaxt = "n"
plot(dat.z, screen = 1, col = 1:2, xaxt = "n")
毎月のラベルを付けるために、いくつかのセットアップ作業を行います。(?plot.zoo
これが変更された場所から、を参照してください。)
tt <- time(dat.z)
# The following is just the sequence 1:36.
# If you wanted only every third month plotted,
# use a sequence like ix <- seq(1, length(tt), 3)
ix <- seq_along(tt)
# What format do you want for your labels.
# This yields abbreviated month - abbreviated year
fmt <- "%b-%y"
labs <- format(tt, fmt) # Generate the vector of your labels
軸をプロットに追加します。すべてに適切なサイズを見つけるには、いくつかの実験が必要になる場合があります。las = 2
ラベルを軸に対して垂直にします。これは、毎年毎月のラベルを含める必要があると本当に感じた場合に必要です。
axis(side = 1, at = tt[ix], labels = labs[ix],
tcl = -0.7, cex.axis = 0.7, las = 2)
最終的なプロットは次のとおりです。

ちなみに、などの日付を取得している場合は、この質問1977.15
に対する回答のいくつかを読んでください。たとえば、@joranの。の使用法を確認してください。pretty()