R 更改ggplot条形图中特定数据点的文本标签颜色

R 更改ggplot条形图中特定数据点的文本标签颜色,r,ggplot2,R,Ggplot2,我正在尝试使用ggplot2更改条形图中与特定数据点关联的文本标签的颜色 以下是原始代码-以mtcars为例: mtcars_gear_percentage_by_make <- mtcars %>% tibble::rownames_to_column(var = "car") %>% tidyr::separate(car, c("make", "model"), sep = "\\s"

我正在尝试使用ggplot2更改条形图中与特定数据点关联的文本标签的颜色

以下是原始代码-以mtcars为例:

mtcars_gear_percentage_by_make <- mtcars %>%
  tibble::rownames_to_column(var = "car") %>%
  tidyr::separate(car, c("make", "model"), sep = "\\s") %>%
  dplyr::filter(make == "Merc" | make == "Toyota") %>%
  dplyr::group_by(make, gear) %>%
  dplyr::summarize(n_model = n()) %>%
  dplyr::mutate(percentage_gear = n_model / sum(n_model, na.rm = TRUE))

ggplot(mtcars_gear_percentage_by_make,
       aes(x = make, y = percentage_gear, fill = gear, label = round(percentage_gear, 2))) +
  geom_col() +
  geom_label(position = position_stack(vjust = 0.5))
mtcars\u档位\u百分比
TIBLE::行名称到列(var=“car”)%>%
tidyr::单独(汽车,c(“制造”,“型号”),sep=“\\s”)%%
dplyr::过滤器(make==“Merc”| make==“Toyota”)%>%
dplyr::分组依据(品牌、档位)%>%
dplyr::summary(n_model=n())%>%
dplyr::mutate(百分比=n模型/总和(n模型,na.rm=TRUE))
ggplot(mtcars×齿轮×百分比×品牌),
aes(x=制造,y=齿轮百分比,填充=齿轮,标签=圆形(齿轮百分比,2)))+
geom_col()+
几何图形标签(位置=位置堆栈(vjust=0.5))
这是它生成的图:

有没有办法将深蓝色部分的文本标签颜色更改为白色,而使浅蓝色部分的文本标签颜色保持不变


谢谢大家!

更安全的方法是根据将覆盖的填充组指定颜色美学:

ggplot(mtcars\u档位\u百分比\u品牌,
aes(x=制造,y=齿轮百分比,填充=齿轮,标签=圆形(齿轮百分比,2)))+
geom_col()+
geom_标签(aes(颜色=齿轮),
位置=位置\堆栈(vjust=0.5))+
比例\颜色\渐变(低=“白”,高=“黑”,引导=引导\无()