2017-01-20 2 views
0

I in R fehlende Daten am Visualisierung this method verwendet, die ggplot2 verwendet:Set spezifische Farbe in ggplot2 scale_fill mit

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") 
} 

Die scale_fill_grey Methode verwendet schwarz und grau. Wie kann ich die Farbe der Zellen in eine bestimmte Farbe ändern, sagen wir "rot"?

Ich habe versucht:

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

Auch

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

Aber ich bekomme die Fehlermeldung:

Error: Discrete value supplied to continuous scale 
+0

Verwenden Sie nicht 'scale_fill_grey'? Versuchen Sie 'scale_fill_brewer' oder' scale_fill_gradient' oder ähnliches. – Gregor

+0

Ja, ich hätte erwähnen sollen, dass ich das versucht habe. Ich sehe nicht, wie ich eine bestimmte Farbe einstellen soll. http://docs.ggplot2.org/current/scale_brewer.html – Cybernetic

+0

Ja, und "eine bestimmte Farbe" ist anders als "etwas anderes als schwarz". Sie sollten eine Beispielfarbe in Ihrer Frage angeben. Und wenn Sie "scale_fill_gradient" ausprobiert haben und es nicht funktioniert hat, wäre ich neugierig auf den Code, den Sie ausprobiert haben. Die Dokumentation und Beispiele auf '? Scale_fill_gradient' scheinen ziemlich gut zu sein. – Gregor

Antwort

0

Ich habe es durch scale_fill_grey mit folgendem Ersatz zu arbeiten:

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