2016-09-02 1 views
0

voici mes données:lignes Différencier en treillis à l'aide Parallelplot

basketball <- structure(list(Team = c("Golden State Warriors", "Golden State Warriors", 
"Golden State Warriors", "Golden State Warriors", "Golden State Warriors", 
"Golden State Warriors", "Golden State Warriors", "Cleveland Cavaliers", 
"Cleveland Cavaliers", "Cleveland Cavaliers", "Cleveland Cavaliers", 
"Cleveland Cavaliers", "Cleveland Cavaliers", "Cleveland Cavaliers" 
), Players = c("Stephen Curry", "Kevin Durant", "Draymond Green", 
"Klay Thompson", "Zaza Pachulia", "Andre Iguodala", "David West", 
"Lebron James", "Kyrie Irving", "Kevin Love", "Richard Jefferson", 
"Chris Andersen", "J.r. Smith", "Iman Shumpert"), `3 points` = c(286, 
64, 111, 239, 0, 74, 4, 120, 157, 144, 66, 4, 163, 67), `3 points Attempts` = c(646, 
159, 329, 545, 3, 212, 20, 339, 378, 392, 155, 13, 426, 196), 
    `2 points` = c(367, 174, 228, 363, 240, 157, 319, 504, 421, 
    269, 78, 116, 152, 126), `2 points Attempt` = c(695, 308, 
    436, 754, 526, 284, 666, 940, 857, 560, 169, 194, 329, 275 
    ), `Free Throws` = c(308, 146, 132, 225, 126, 68, 119, 375, 
    315, 258, 78, 76, 54, 43), `Free Throws Attempts` = c(337, 
    171, 200, 256, 160, 114, 161, 528, 365, 321, 114, 114, 72, 
    64), `Total Rebounds` = c(341, 178, 647, 247, 500, 257, 449, 
    416, 237, 731, 183, 299, 218, 224), Steals = c(163, 24, 123, 
    87, 80, 89, 48, 109, 114, 51, 32, 26, 82, 81), `Blocks ` = c(16, 
    25, 99, 60, 21, 25, 48, 49, 20, 39, 11, 61, 22, 16), `Personal Fouls` = c(158, 
    40, 253, 122, 170, 100, 160, 135, 146, 140, 115, 88, 163, 
    138), `Total points` = c(1900, 686, 921, 1668, 606, 604, 
    769, 1743, 1628, 1228, 432, 320, 847, 496)), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -14L), .Names = c("Team", 
"Players", "3 points", "3 points Attempts", "2 points", "2 points Attempt", 
"Free Throws", "Free Throws Attempts", "Total Rebounds", "Steals", 
"Blocks ", "Personal Fouls", "Total points")) 

Il y a deux équipes dans les données ci-dessus (Cleveland et Golden State Warriors). Mon terrain parallèle à droite ressemble maintenant à ceci:

parallelplot

Le code pour le graphique ci-dessus est:

library(lattice) 
parallelplot(basketball, horizontal.axis = F, col = '#000000') 

J'ai essayé de mettre des couleurs différentes pour les deux équipes:

library(lattice) 
reading_colors <- c() 
for (i in 1:length(basketball$Team)){ 
    if (basketball$Team[i] > 7) { 
     col <- "#000000" 
    } else { 
     col <- "#cccccc" 
    } 
    reading_colors <- c(reading_colors,col) 
} 
parallelplot(basketball, horizontal.axis = F, col = reading_colors) 

Cependant, quand j'accéder reading_colors, ce sont les valeurs (la boucle ne fonctionne pas):

c("#000000", "#000000", "#000000", "#000000", "#000000", "#000000", 
"#000000", "#000000", "#000000", "#000000", "#000000", "#000000", 
"#000000", "#000000") 

Souhaitez-vous recevoir des commentaires sur les raisons pour lesquelles cela ne fonctionne pas et quelqu'un peut-il m'aider à différencier mes lignes?

Répondre

0

Que diriez-vous

parallelplot(basketball, horizontal.axis = F, groups=basketball$Team) 

Chaque groupe aura une couleur différente par défaut.

EDIT pour contrôler les couleurs -

Avec trellis.par.set vous pouvez définir les couleurs du groupe:

trellis.par.set(list(superpose.line=list(col=c("#000000","#cccccc")))) 

parallelplot(basketball, horizontal.axis = F,groups=basketball$Team,lwd=2) 

Ou vous pouvez le faire directement dans l'appel parallelplot:

parallelplot(basketball, horizontal.axis = F,groups=basketball$Team,lwd=2, 
    par.settings=list(superpose.line=list(col=c("#000000","#cccccc")))) 

(Notez le la couleur grise est assez claire donc j'ai ajouté lwd=2 pour rendre les lignes plus épaisses.)

+0

Oui cela fonctionne! Mais y a-t-il des moyens de modifier les couleurs? – umm

0

basketball$Team > 7 est toujours vrai.

> basketball$Team > 7 
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE 

Par conséquent, la couleur est toujours la même.

Il est peut-être plus facile d'utiliser une palette de couleurs, par ex. rainbow

+0

Merci! Toute recommandation sur la façon de réparer la boucle? – umm

+0

Pourquoi avez-vous besoin d'une boucle? Utilisez la méthode de DaveTurek ou définissez la couleur de votre choix (avec 'rainbow')? – Christoph

+0

Je pensais qu'une boucle pourrait être utile si je veux catégoriser en fonction de la médiane des autres variables? Jetez un oeil à l'arc-en-ciel. Toute bonne référence? – umm