2016-04-16 6 views
1

Wenn ich diesen Code ggplot2 ausführen, ist die Legende alle Schattierungen von blau. Dies ist ziemlich schwer von dunkelblau zu unterscheiden. Ich hätte gerne ein Spektralbild (Heatmap). Ich habe gegoogelt und viele Dinge ausprobiert und es bleibt blau.ggplot2 gibt mir den Blues in R in Streudiagrammen, wie mache ich eine spektrale Farbpalette?

require(ggplot2) 
d=data.frame(x=runif(100),y=runif(100),z=runif(100)) 
g = ggplot(data=d) + 
    geom_point(aes(x=x, y=y, colour=z),size=1) 
g = g + theme_bw()  
print(g) 

Ich entschuldige mich, wenn ich nicht das Offensichtliche zu sehen ...

Antwort

1

Sie könnten versuchen, scale_colour_gradient() wie folgt hinzuzufügen:

g <- ggplot(data=d) + 
    geom_point(aes(x=x, y=y, colour=z),size=1) + 
    scale_colour_gradient(low="blue", high="red") 
g <- g + theme_bw() 

Dadurch ändert sich die Skala von blau zu rot statt Licht blau bis dunkelblau. Es gibt wahrscheinlich bessere Möglichkeiten mit RColorBrewer; Ich werde sehen, ob ich etwas besseres finden kann.

aktualisieren

Wie in den Kommentaren beschrieben, gefunden @VincentBonhomme schnell, was ich suchte:

library(RColorBrewer) 
g <- ggplot(data=d) + 
    geom_point(aes(x=x, y=y, colour=z),size=1) + 
    scale_colour_gradientn(colours = brewer.pal(10, "Spectral")) 
g <- g + theme_bw() 

die verschiedenen Paletten von RColorBrewer ein bereitgestellt anzeigen können

library(RColorBrewer) 
display.brewer.all() 
+2

als Ergänzung, mit RColorBrewer, können Sie versuchen Sie: 'g + scale_colour_gradientn (Farben = brewer.pal (10," Spectral "))' –

+0

@VincentBonhomme Nett - das war genau, was ich versuchte zu finden. – RHertel

+0

@VincentBonhomme Ich habe Ihren Kommentar in meine Antwort eingefügt; hoffe, das ist für dich in Ordnung. Wenn Sie möchten, können Sie die Antwort selbst posten - ich werde dann das Update des Beitrags entfernen. – RHertel