2017-01-20 2 views
0

Я визуализируя недостающие данные в R с помощью this method, которая использует ggplot2:Установите определенный цвет в ggplot2 с помощью scale_fill

library(reshape2) 
library(ggplot2) 

ggplot_missing <- function(x){ 
    x %>% 
    is.na %>% 
    melt %>% 
    ggplot(data = ., 
      aes(x = Var2, 
       y = Var1)) + 
    geom_raster(aes(fill = value)) + 
    scale_fill_grey(name = "", labels = c("Present","Missing")) + 
    theme_minimal() + 
    theme(axis.text.x = element_text(angle=45, vjust=0.5)) + 
    labs(x = "Columns/Attributes", 
     y = "Rows/Observations") 
} 

Метод scale_fill_grey использует черный и серый. Как изменить цвет ячеек на определенный цвет, скажем, «красный»?

Я пробовал:

scale_fill_brewer(name = "", labels = c("Present","Missing"), na.val="red") 

Также

scale_fill_gradient(name = "", labels = c("Present","Missing"), low = "#FF69B4", high = "#FF0000") 

Но я получаю ошибку:

Error: Discrete value supplied to continuous scale 
+0

Не использовать 'scale_fill_grey'? Попробуйте «scale_fill_brewer» или «scale_fill_gradient» или тому подобное. – Gregor

+0

Да, я должен был упомянуть, что я попробовал это. Я не вижу, как установить определенный цвет. http://docs.ggplot2.org/current/scale_brewer.html – Cybernetic

+0

Да, и «конкретный цвет» отличается от «чего-то другого, кроме черного». Вы должны указать пример цвета в своем вопросе. И если вы попробовали «scale_fill_gradient», и это не сработало, мне было бы любопытно увидеть код, который вы пробовали. Документация и примеры в '? Scale_fill_gradient' выглядят довольно хорошо. – Gregor

ответ

0

Я получил его на работу, заменив scale_fill_grey следующим:

scale_fill_manual(name = "", values = c('my_color_1', 'my_color_2'), labels = c("Present","Missing")) +