web-dev-qa-db-fra.com

Tracer avec des couleurs conditionnelles basées sur les valeurs de R

Je veux tracer un graphique avec différentes couleurs en fonction des valeurs. J'ai écrit le code ci-dessous,

np_graph <- data.frame(C1 = -5:5, C2 = -5:5)
x=np_graph2$C1
y=np_graph2$C2
plot(x,y,xlab="PC1",ylab="PC2")

Maintenant, si la valeur de X est> 0, alors cette valeur doit être en vert (dans le graphique). si la valeur de Y est> 0, alors cette valeur doit être en rouge (dans le graphique).

Quelqu'un peut-il m'aider à ce sujet?

33
I am

L'argument col définira les couleurs, vous pouvez l'utiliser en conjonction avec une instruction ifelse. Voir ?plot pour plus de détails.

# using base plot
plot(x,y,xlab="PC1",ylab="PC2", col = ifelse(x < 0,'red','green'), pch = 19 )

enter image description here

Pour faire la même chose dans ggplot2.

#using ggplot2
library(ggplot2)
ggplot(np_graph) + geom_point(aes(x = C1, y = C2, colour = C1 >0)) +
  scale_colour_manual(name = 'PC1 > 0', values = setNames(c('red','green'),c(T, F))) +
  xlab('PC1') + ylab('PC2')

enter image description here

71
mnel