1

私はたくさんのデータを持っています - geom_ribbon で表される標準偏差を持つ、グループごとに色付けされた 3 つの時系列 (モデル グループ平均)。デフォルトでは、横に素敵な凡例があります。また、次のように、(geom_ribbon を使用せずに) プロットにオーバーレイしたい観測の単一の時系列もあります。

df <- data.frame(year=1991:2010, group=c(rep('group1',20), rep('group2',20), rep('group3',20)), mean=c(cumsum(abs(rnorm(20))),cumsum(abs(rnorm(20))),cumsum(abs(rnorm(20)))),sd=3+rnorm(60))
obs_df <- data.frame(year=1991:2010, value=cumsum(abs(rnorm(20))))
ggplot(df, aes(x=year, y=mean)) + geom_line(aes(colour=group)) + geom_ribbon(aes(ymax=mean+sd, ymin=mean-sd, fill=group), alpha = 0.2) +geom_line(data=obs_df, aes(x=year, y=value))

ただし、凡例には色が付けられていないため (黒くしたい)、観察結果が凡例に表示されます。obs を凡例に追加するにはどうすればよいですか?

4

2 に答える 2

6

まず、 と の結合データ フレームを作成しdfますobs_df

dat <- rbind(df, data.frame(year = obs_df$year,  
                  group = "obs", mean = obs_df$value, sd = 0))

プロット:

ggplot(dat, aes(x=year, y=mean)) +
geom_line(aes(colour=group)) +
geom_ribbon(aes(ymax=mean+sd, ymin=mean-sd, fill=group), alpha = 0.2) +
scale_colour_manual(values = c("red", "green", "blue", "black")) +
scale_fill_manual(values = c("red", "green", "blue", NA))

プロット

于 2012-09-11T07:49:41.203 に答える
0

「obs_df」の作成でエラーが発生したと思います。それを使用して作成するとyear = 1991:2010、残りのデータのコンテキストでより意味があり、ggplot呼び出しを変更せずに希望するプロットが得られます。

于 2012-09-11T07:49:09.470 に答える