theme()
とguides()
の機能を使用して凡例のキーを正確に一致させようとしています。ggplot2の微調整の凡例キーで問題が発生する
このプロットを皮切り:
library(ggplot2)
data(mpg)
mpg$year <- as.numeric(mpg$year)
means <- tapply(mpg$displ, list(mpg$year), FUN = mean)
means <- as.data.frame(means)
means$year <- as.numeric(row.names(means))
names(means)[1] <- "displ"
p1 <-
ggplot(mpg, aes(x = year, y = displ)) +
geom_jitter(aes(color = "points")) +
geom_errorbar(data = means, aes(ymin = displ, ymax = displ,
color = "mean")) +
scale_x_continuous(breaks = c(1998, 2008))
p1
私は私が使用して凡例キーを変更することができ、プロットを得る:
p1 + theme(legend.key = element_rect(fill = NA),
legend.title = element_blank()) +
guides(color = guide_legend(override.aes =
list(shape=c(NA, 16), linetype=c(1, 0), fill = c(NA, NA))))
をプロットにはgeom_ribbon()
も含まれていますが、同じメソッドが失敗します。
p2 <-
ggplot(mpg, aes(x = year, y = displ)) +
geom_jitter(aes(color = "points")) +
geom_ribbon(aes(ymin = 3, ymax = 4, color = "ribbon"),
fill = "green", alpha = 0.5) +
geom_errorbar(data = means, aes(ymin=displ, ymax=displ,
color="mean")) +
scale_x_continuous(breaks = c(1998, 2008))
p2 + theme(legend.key = element_rect(fill = NA),
legend.title = element_blank()) +
guides(color = guide_legend(override.aes =
list(shape=c(NA, 16, NA), linetype=c(1, 0, 0),
fill = c(NA, NA, "green"))))
明確にするために:私はちょうど最初のプロットのようなストレート赤い線、境界線なし、なし対角線として表示する平均値を表す凡例キーをしたいです。
(別のデータフレームを作成する代わりにstat_summary()を使用することができますが、実際のプロジェクトでは機能しません)。
任意のアドバイスのおかげで、
ラッセ
あなたはaes' 'リボンの色を設定するために_必要_ですか? – Axeman
そうだと思います。リボンが何を伝えているのか伝説が必要です。私の知る限り、これを行う唯一の方法は 'aes'に定数' color'を作成することです。 –
代わりにfillを使用すると、凡例の行は避けられます。 – Axeman