Адаптация значений серого цвета из ggpot2 scale_fill_brewer(палитра = «Серые»)

#r #ggplot2

#r #ggplot2

Вопрос:

Я создал график с данными и кодом ниже. Я хотел бы изменить значения серого, используемые для полос, чтобы сделать их на один шаг темнее. Однако я не вижу ничего ?scale_fill_brewer , что позволило бы мне это сделать. Есть ли простое решение для исправления этого?

Данные:

 counts_truth  <- structure(list(x_label = c("Truth ECOST = 0.52", "Truth ECOST = 0.39", 
"Truth ECOST = 0.26", "Truth ECOST = 0.13", "Truth ECOST = 0.00", 
"Truth ECOST = 0.52", "Truth ECOST = 0.39", "Truth ECOST = 0.26", 
"Truth ECOST = 0.13", "Truth ECOST = 0.00"), treatment = structure(c(1L, 
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L), .Label = c("control", "treatment"
), class = "factor", scores = structure(c(control = 0.424793388429752, 
treatment = 0.498594189315839), .Dim = 2L, .Dimnames = list(c("control", 
"treatment")))), percentage = c(0.163636363636364, 0.272727272727273, 
0.427272727272727, 0.6, 0.781818181818182, 0.319587628865979, 
0.360824742268041, 0.474226804123711, 0.701030927835051, 0.88659793814433
), remove = c("Truth ECOST ", "Truth ECOST ", "Truth ECOST ", 
"Truth ECOST ", "Truth ECOST ", "Truth ECOST ", "Truth ECOST ", 
"Truth ECOST ", "Truth ECOST ", "Truth ECOST "), ECOST = c("0.52", 
"0.39", "0.26", "0.13", "0.00", "0.52", "0.39", "0.26", "0.13", 
"0.00")), row.names = c(NA, -10L), class = c("data.table", "data.frame"
))

library(ggplot2)
counts_truth %>% 
ggplot(aes(x = ECOST, y = percentage, fill = treatment, label=sprintf("%0.2f", round(percentage, digits = 2))))   
geom_col(position = 'dodge')   
geom_text(position = position_dodge(width = .9),    # move to center of bars
          vjust = -0.5,    # nudge above top of bar
          size = 5)             
scale_fill_brewer(palette = "Greys")   
theme_bw()  
 

введите описание изображения здесь

Ответ №1:

Одним из быстрых решений было бы использовать scale_fill_grey для настройки континуума серых тонов, чтобы они были немного темнее. Основываясь на вашем наборе данных, приведенное ниже затемнит график.

Отрегулируйте start и end настройте параметры по мере необходимости. Они варьируются от 0 (черный) до 1 (белый).

 counts_truth %>% 
    ggplot(aes(x = ECOST, y = percentage, fill = treatment, label=sprintf("%0.2f", round(percentage, digits = 2))))   
    geom_col(position = 'dodge')   
    geom_text(position = position_dodge(width = .9),    # move to center of bars
              vjust = -0.5,    # nudge above top of bar
              size = 5)             
    scale_fill_grey(start = 0.8, end = 0.5)  
    theme_bw()
 

Комментарии:

1. Я возьму это на себя! Большое вам спасибо