1. ホーム
  2. r

[解決済み] Geom_vlineをクラスの日付のX軸に垂直にするには?

2022-08-14 05:56:43

質問

のgoogleグループでのHadleyの投稿を見つけたにもかかわらず、その投稿を削除してしまいました。 POSIXctgeom_vline を使用していますが、うまくいきません。私は時系列を持っていて、例えば1998年、2005年、2010年の垂直線を引きたいと思っています。私は、次のように試してみました。 ggplotqplot 構文を使用しても、垂直線がまったく表示されないか、垂直線が最初の垂直グリッドで描かれ、シリーズ全体が右に多少奇妙にシフトしています。

gg <- ggplot(data=mydata,aes(y=somevalues,x=datefield,color=category)) +
      layer(geom="line")
gg + geom_vline(xintercept=mydata$datefield[120],linetype=4)
# returns just the time series plot I had before, 
# interestingly the legend contains dotted vertical lines

私の日付フィールドは "1993-07-01" というフォーマットで、クラスは Date .

どのように解決するのですか?

試しに as.numeric(mydata$datefield[120]) :

gg + geom_vline(xintercept=as.numeric(mydata$datefield[120]), linetype=4)

簡単なテスト例です。

library("ggplot2")

tmp <- data.frame(x=rep(seq(as.Date(0, origin="1970-01-01"),
                            length=36, by="1 month"), 2),
                  y=rnorm(72),
                  category=gl(2,36))

p <- ggplot(tmp, aes(x, y, colour=category)) +
     geom_line() +
     geom_vline(xintercept=as.numeric(tmp$x[c(13, 24)]),
                linetype=4, colour="black")
print(p)

<イグ