簡體   English   中英

R嵌套填充顏色和漸變顏色

[英]R Nesting fill colours and gradient colours

我有一個類似的情節

X軸:日期,Y軸:重量,填充變量:品種

使用以下數據:

  Cultivar Date Weight        sd  n         se
1      c39  d16   3.18 0.9566144 10 0.30250803
2      c39  d20   2.80 0.2788867 10 0.08819171
3      c39  d21   2.74 0.9834181 10 0.31098410
4      c52  d16   2.26 0.4452215 10 0.14079141
5      c52  d20   3.11 0.7908505 10 0.25008887
6      c52  d21   1.47 0.2110819 10 0.06674995

我使用以下代碼進行了繪制:

ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) + 
  geom_bar(position="dodge") + 
  scale_fill_manual (values =c("#90353B", "burlywood1"))

我想做的是:根據se的值,為C52( burlywood1 )指定不同的顏色密度/亮度,因此se的值越高,色調越深,而se值越低,則淡黃色。

我試圖巢scale_colour_gradient2scale_fill_manual但卻沒有奏效。 有什么辦法嗎?

ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) + 
  geom_bar(position="dodge") + 
  scale_fill_manual (values =c("#90353B", scale_colour_gradient2(low="#22FF00", mid="white", high="#FF0000", midpoint=median(cabbage_exp$se)))) 

只需將se映射到alpha

library(ggplot2)
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar, alpha = se)) + 
geom_bar(position="dodge", stat = "identity") + 
scale_alpha(range = c(.5, 1)) + 
scale_fill_manual (values =c("#90353B", "burlywood1"))

這將創建從0.5到1(=不透明)的alpha值。

編輯:

如果只希望一種顏色是透明的,則添加另一個alpha列,例如:

cabbage_exp$alpha[cabbage_exp$Cultivar == "c52"] <- scales::rescale(cabbage_exp$se[cabbage_exp$Cultivar == "c52"], to = c(.5, 1)) 
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar, alpha = alpha)) + 
geom_bar(position="dodge", stat = "identity") + 
scale_alpha(range = c(.5, 1)) + 
scale_fill_manual (values =c("#90353B", "burlywood1"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM