2016-11-03 1 views
0

J'utilise R pour le traçage. Quand mon graphe trace la légende apparaît où je veux que ce soit, mais les couleurs sont manquantes. mtcars 2 est une version modifiée de mtcars (l'un des ensembles de données préchargés) qui ajoute un modèle et un pays d'origine à l'ensemble de données. mtcars.pca est ce que j'ai appelé mon analyse de redondance (fonction rda sous végétalien), et mtcars.clust est intitulé pour la classification hiérarchique des facteurs continus de mtcars (fonction hclust de vegan) Ci-dessous le code que j'utilise avec mtcars2.Légende apparaît, mais il ne montre pas la couleur

Example output

pca.fig = ordiplot(mtcars.pca, type = "none", las=1, xlim=c(-15,15), ylim = c(-20,10))   

points(pca.fig, "sites", pch = 19, col = "green", select = mtcars2$origin =="domestic") 
points(pca.fig, "sites", pch = 19, col = "blue", select = mtcars2$origin =="foreign") 

ordiellipse(mtcars.pca, mtcars2$origin, conf = 0.95, label = FALSE) 
ordicluster(mtcars.pca, mtcars.clust, col = "gray") 

legend("bottomright", title="Car Origin", c("domestic", "foreign"), col = "origin") 
+0

s'il vous plaît donner un exemple reproductible, ce qui est mtcars.pca ? qu'est-ce que mtcars2? Qu'est-ce que mtcars.clust? –

+0

Mes excuses, mtcars 2 est une version modifiée de mtcars (un des ensembles de données préchargés). Cela ajoute un modèle et un pays d'origine à l'ensemble de données. Mtcars.pca est ce que j'ai appelé mon analyse de redondance (fonction rda sous végétalien), et mtcars.clust est intitulé pour la classification hiérarchique des facteurs continus de mtcars (fonction hclust de végétalien) –

+0

utilise soit 'col = c (" blue ", "vert"), lty = 1' ou 'fill = c (" bleu "," vert ")' [changer selon vos besoins] – user20650

Répondre

1

Vous devez spécifier un vecteur de couleurs dans legend et aussi un pch:

library("vegan") 
data(dune, dune.env) 
ord <- rda(dune) 
plot(ord, type = "n") 
cols <- c("red","blue","green") 
points(ord, col = cols[dune.env$Use], pch = 19) 
legend("bottomright", legend = levels(dune.env$Use), bty = "n", 
     col = cols, pch = 19) 

Si vous n'ajoutez pas pch mais il suffit d'utiliser col = colslegend() n'affiche pas des points. Parce que vous avez utilisé pch = 19 dans vos appels points(), utilisez la même chose dans l'appel legend().

Notez également comment tracer des points de différentes couleurs en une seule passe. J'ai quelques exemples et des explications qui passent par l'indexation astuce je dans mon code ci-dessus pour atteindre cet objectif dans un billet de blog de mes d'il y a quelques années: http://www.fromthebottomoftheheap.net/2012/04/11/customising-vegans-ordination-plots/