6

コードを使用して図にプロットされたデータ系列ではなく、注釈付きプロットで強調表示された領域に対応するカスタム ラベルと色、アルファを使用する凡例を作成しようとしています。

library(ggplot2)
data(economics)
p1 <- ggplot(data=economics, mapping=aes(x=date, y=unemploy)) +
  geom_line(size=1) +
  annotate("rect", xmin=as.Date('1970-01-01'), xmax=as.Date('1980-01-01'), ymin=-Inf, ymax=Inf, alpha=0.2, fill="red") +
  annotate("rect", xmin=as.Date('1990-01-01'), xmax=as.Date('2000-01-01'), ymin=-Inf, ymax=Inf, alpha=0.2, fill="green") +
p1

ここで、「1970 年代」、「1990 年代」というラベルが付いた凡例を追加したいと思います。対応する色は赤と緑で、アルファ値は 0.2 で、注釈要素に対応します。これを行う方法はありますか?

4

1 に答える 1

12

最も簡単なのは、注釈を付ける必要がある領域の新しいデータ フレームを作成することです。

df<-data.frame(xmin=as.Date(c('1970-01-01','1990-01-01')),
               xmax=as.Date(c('1980-01-01','2000-01-01')),
               ymin=c(-Inf,-Inf),
               ymax=c(Inf,Inf),
               years=c("1970s","1990s"))

次にgeom_rect()、この新しいデータ フレームを使用して、これらの領域を追加します。凡例は自動的に作成されます。scale_fill_manual() を使用すると、色を変更できます。

ggplot(data=economics, mapping=aes(x=date, y=unemploy)) +
  geom_line(size=1)+
  geom_rect(data=df,aes(xmin=xmin,ymin=ymin,xmax=xmax,ymax=ymax,fill=years),
                    alpha=0.2,inherit.aes=FALSE)+
  scale_fill_manual(values=c("red","green"))

ここに画像の説明を入力

于 2013-08-24T14:38:19.450 に答える