为geom_text更改颜色会产生与要求的颜色完全不同的颜色

时间:2020-04-14 13:45:05

标签: ggplot2 colors geom-text

我想将标签添加到ggplot2栏中,并更改标签的颜色。我不知何故。

我的数据集大约(简化)为以下格式:

data$value <- runif(27, min=10, max=60)
data$A <- factor((rep(1:3, each=9)))
data$B <- factor((rep(1:9, each=3)))
data$variable <- factor(rep(rep(1:3),9))


情节如下:

three <- c(pink="#BD1550",dark="#490A3D",blue1="#0b6fa1",white="#FFFFFF", "#FFFFFF")
 m<-  data %>% group_by(A, variable) %>% summarise(mean=mean(value), sd=sd(value)) %>% 
             ggplot(aes(x=A,fill=variable)) +
             geom_col(aes(y=mean),position="stack")+
             geom_text(aes(label=round(mean,digits=2),y=mean, colour="white")
                          ,size=3, show.legend = F, position = position_stack(vjust = 0.5))+
             scale_fill_manual(values=three) + theme(legend.position="right")

现在,我尝试使用geom_text中的颜色:

  1. color =“ white”
  2. 拼写颜色或颜色
  3. colour =“ #FFFFFF”
  4. colour = c(“#FFFFFF”)
  5. 颜色= 4
  6. 颜色=白色
  7. 一个<-c(“#FFFFFF”),然后颜色=一个

不同的解决方案为每个标签提供了不同的颜色,分别是我的字符串“三”中的粉红色,橙色,绿色和蓝色,但从来没有给我白色。我也尝试过使其颜色不同于白色,但是不知何故我无法控制它能带给我什么颜色。

我没有收到任何错误消息。

我开始耗尽想法。任何人有解决方案吗?

1 个答案:

答案 0 :(得分:0)

问题是您正在aes()内部的颜色美感上映射“白色”。这样ggplot认为您想在颜色美学上映射一个变量,即“白色”不被解释为颜色的名称。相反,ggplot只是从其默认调色板“红色”中选择颜色。只需将颜色作为参数传递给geom_text之外的aes()。或使用scale_color_manual设置调色板。 (;试试这个:

library(ggplot2)
library(dplyr)

set.seed(42)

data <- data.frame(
  value = runif(27, min=10, max=60),
  A = factor((rep(1:3, each=9))),
  B = factor((rep(1:9, each=3))),
  variable = factor(rep(rep(1:3),9))  
)

three <- c(pink="#BD1550",dark="#490A3D",blue1="#0b6fa1", white="#FFFFFF", "#FFFFFF")
m <-  data %>% 
  group_by(A, variable) %>% 
  summarise(mean=mean(value), sd=sd(value)) %>% 
  ggplot(aes(x=A, fill=variable)) +
  geom_col(aes(y = mean),position="stack")+
  geom_text(aes(label = round(mean, digits=2), y=mean), colour="white"
            ,size=3, show.legend = F, position = position_stack(vjust = 0.5))+
  scale_fill_manual(values=three) + theme(legend.position="right")

m

reprex package(v0.3.0)于2020-04-14创建