2017-10-11 7 views
0

Je crée une matrice de diagramme de dispersion en utilisant R. Mais je veux changer la couleur pour chaque classification. Jusqu'à présent, je ne peux que changer la couleur de tout, pas sélectivement.Comment changer de couleur pour chaque classification dans R

Il y a seulement 2 classification (soit 1 ou 0 dans la colonne N) mais j'ai des données 300 ++, si possible, est-il possible de ne pas changer manuellement la couleur de chaque point de données?

J'ai cherché sur le web, mais jusqu'à présent, je ne peux pas trouver tout matériel qui bien me apprendre à ce sujet

Voici mon code à ce jour:

pairs(data[2:14], pch = 20, col = 'blue') 

Ceci est la tête (données) ma CSV pour référence

data <- read.table(text=" 
A B   C   D   E F G   H I   J K   L M N 
1 0.63 1 0.0000000 0.4811321 0.2442922 1 1 0.6030534 0 0.3709677 1.0 0.0000000 0.75 0 
2 0.67 1 1.0000000 0.6226415 0.3652968 0 1 0.2824427 1 0.2419355 0.5 1.0000000 0.00 1 
3 0.67 1 1.0000000 0.2452830 0.2351598 0 1 0.4427481 1 0.4193548 0.5 0.6666667 1.00 1 
4 0.37 1 0.6666667 0.3396226 0.2831050 0 0 0.8854962 0 0.5645161 1.0 0.0000000 0.00 0 
5 0.41 0 0.3333333 0.3396226 0.1780822 0 1 0.7709924 0 0.2258065 0.0 0.0000000 0.00 0 
6 0.56 1 0.3333333 0.2452830 0.2511416 0 0 0.8167939 0 0.1290323 0.0 0.0000000 0.00 0") 
+2

Une solution simple est 'paires (données [2:14], pch = 20, col = données $ N + 1)'. (J'ai ajouté 1 ici parce que vous avez 0/1 et R commence sa couleur à 1 plutôt que 0.) – MrFlick

+1

Ceci est fait dans le premier exemple de '? Paires'. À condition que vous ayez 'ggplot2' et' GGally', vous pouvez essayer 'ggpairs (data, columns = 2:14, aes (color = N))' – Suren

Répondre

0

manière la plus facile de tracer des paires utilise la fonction de base de R.

pairs(data[2 : 14], 
      pch = 20, col = c("red", "blue")[data$N + 1]) 

On peut facilement colorer les points et avoir différentes formes.

Bien que ce ne soit pas si facile, il existe d'autres paquets qui peuvent faire mieux. Une option consiste à utiliser le ggplot2 et la combinaison GGally.

library(ggplot2) 
library(GGally) 

Avec cette option, les couleurs ne peuvent pas être numériques.

data$N <- as.factor(data$N) 

Ensuite, ce qui suit donnerait un tracé de paires avec plus d'informations.

ggpairs(data, columns = 2:14, 
    mapping = ggplot2::aes(color = N)) 

Il y a d'autres façons on peut manipuler les parties supérieure et inférieure de la parcelle de paires en utilisant GGally. Voici un exemple utilisant les exemples dans ?ggpairs.

ggpairs(data, columns = 2:14, 
     mapping = ggplot2::aes(color = N), 
    upper = list(continuous = wrap("density", alpha = 0.5), 
       combo = "box_no_facet"), 
    lower = list(continuous = wrap("points", alpha = 0.3), 
       combo = wrap("dot_no_facet", alpha = 0.4)) 
) 

Un autre frais m'a beaucoup plu sur ce package est sa fonction putPlot qui vous permet d'insérer/mettre vos propres parcelles dans la mise en page des paires.