2017-03-31 4 views
1

My scatterplot Je ne suis pas le meilleur avec R, mais j'essaie d'introduire la couleur dans ce tracé.Couleur Scatterplot selon la valeur Y ggplot

SecondPlot <- ggplot(sur11, aes(x=standec, y=compnoanti)) + 
geom_point(col ="black", size = 0.5) + 
geom_text(label=sur11$concatena, hjust = 0, nudge_x = 0.3, size = 2.5) 
SecondPlot 
SecondPlot + geom_abline(intercept = 50, slope = 0, size = 0.2) 

Comment puis-je:

1) Couleur toutes les valeurs Y au-delà de 75 points rouge?

2) Introduire une coloration à l'échelle afin d'utiliser une échelle d'infusion R existante, par exemple «Blues», pour colorer la valeur Y en fonction de leur valeur?

J'ai essayé d'assigner chaque valeur y à un point de 1 à 10, puis j'ai utilisé l'argument size = factor (Z) mais cela n'a pas fonctionné.

Merci.

Répondre

1

Essayez ceci:

1) Couleur toutes les valeurs de Y au-delà de 75 points rouges

SecondPlot <- ggplot(sur11, aes(x=standec, y=compnoanti)) + 
    geom_point(col = ifelse(sur11$compnoanti > 75, "red", "black"), size = 0.5) + 
    geom_text(label=sur11$concatena, hjust = 0, nudge_x = 0.3, size = 2.5) 
SecondPlot 

2) Introduire coloration à l'échelle de sorte que j'utilise une échelle de brasseur R existant, par exemple "blues", de couleur la valeur Y dépend de leur valeur?

#Interpolate Brewer palette 
library(RColorBrewer) 
colourCount = length(unique(sur11$compnoanti)) 
getPalette = colorRampPalette(brewer.pal(9, "Blues")) 


SecondPlot <- ggplot(mtcars, aes(x=standec, y=compnoanti)) + 
    geom_point(aes(col = compnoanti), size = 0.5) + 
    geom_text(label=sur11$concatena, hjust = 0, nudge_x = 0.3, size = 2.5) + 
    scale_colour_gradientn(colours=getPalette(colourCount)) 
SecondPlot 

Puisque vous n'avez pas fourni d'exemple reproductible, je l'ai testé en utilisant un jeu de données générique. Ceci est la version générique:

# Color points above a certain value red 
SecondPlot <- ggplot(mtcars, aes(x=mpg, y=disp)) + 
    geom_point(col = ifelse(mtcars$disp > 120, "red", "black"), size = 0.5) + 
    geom_text(label=rownames(mtcars), hjust = 0, nudge_x = 0.3, size = 2.5) 
SecondPlot 


#Interpolate Brewer palette 
library(RColorBrewer) 
colourCount = length(unique(mtcars$disp)) 
getPalette = colorRampPalette(brewer.pal(9, "Blues")) 


SecondPlot <- ggplot(mtcars, aes(x=mpg, y=disp)) + 
    geom_point(aes(col = disp), size = 0.5) + 
    geom_text(label=rownames(mtcars), hjust = 0, nudge_x = 0.3, size = 2.5) + 
    scale_colour_gradientn(colours=getPalette(colourCount)) 
SecondPlot 
+0

C'est incroyable merci beaucoup. Juste une question - si je voulais colorier les étiquettes ainsi que les points comment pourrais-je faire cela? Merci @HAVB –

+0

@HenryCann ajouter 'aes (color = whateverVariable)' à la ligne 'geom_text'. Vérifiez ici pour des exemples: http://docs.ggplot2.org/current/geom_text.html – HAVB

+0

Merci, j'ai été en mesure d'ajouter de la couleur à l'étiquette, mais pas comme une échelle? Puis-je ajouter l'argument scale_colour_gradient à geom_text en tant qu'argument? Salutations @HAVB –