0

geom_bar プロットに使用したいカスタム カラー パレットがあります。ただし、これらの色の輝度も手動で設定したいと思います。ggplot コードで scale_fill_manual() 関数と scale_fill_hue() 関数を一緒に実行すると、次のエラーが発生します。

Scale for 'fill' is already present. Adding another scale for 'fill', which will replace the existing scale.

1 つの「scale_fill」関数が他の関数をオーバーライドしているように見えます。次のように scale_fill_manual() 関数内で輝度を設定することは論理的に思えました。

scale_fill_manual(values=cbPalette, l = 55)

しかし、これはうまくいきません。

よろしくお願いします。これは、輝度が正しく設定されていない図のバージョンです(以下はデータとコードです)。この図は、輝度を 55 に設定していないバージョンです。

> Sex_age_survival
Sex       age        estimate        lcl       ucl
Female    Adult     0.6826927 0.62881160 0.7320849
Male      Adult     0.6941044 0.64680030 0.7376429
Female    Juvenile  0.4062997 0.27163540 0.5566986
Male      Juvenile  0.5270193 0.39998360 0.6506502
Female    Chick     0.4296511 0.30855270 0.5394149
Male      Chick     0.3987215 0.25969601 0.5252046
Salina    Nest      0.5643484 0.52096067 0.6054399
Marsh     Nest      0.1434720 0.04435806 0.3013856

limits <- aes(ymin = lcl, ymax = ucl)
dodge <- position_dodge(width=0.7)
cbPalette <- c("#E69F00", "#009E73", "#CC0000", "#0066CC")

Sex_age_plot2 <- ggplot(Sex_age_survival, aes(fill = Sex, x = age, y = estimate)) + 
  theme_bw() +
  geom_bar(width = 0.7, position = "dodge", stat = "identity") +
  geom_errorbar(limits, position = dodge, width=0.2, size = .6, shape = 1) +
  theme(text=element_text(size = 16, family = "Candara"),
    legend.text = element_text(size = 30),
    legend.title = element_text(size = 30),
    axis.title.x = element_text(size = 35, vjust = -0.1),
    axis.text.x  = element_text(size = 30), 
    axis.title.y = element_text(size = 35, vjust = 1.2),
    axis.text.y  = element_text(size = 30), 
    panel.grid.major = element_blank()) +
  xlab("Life stage") + 
  ylab("Apparent survival (± 95% CI)") +
  scale_y_continuous(limits = c(0, 1)) +
  scale_fill_hue(l = 55) + # seems like I cannot run this in addition to scale_fill_manual()
  scale_fill_manual(values=cbPalette) # seems like I cannot run this in addition to scale_fill_hue()
Sex_age_plot2
4

1 に答える 1