pca ade4 colorier par colomne

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

remy saurat
Messages : 6
Enregistré le : 09 Mai 2016, 08:55

pca ade4 colorier par colomne

Messagepar remy saurat » 09 Mai 2016, 10:35

Bonjour,

J'ai un jeu de donnée avec mes espèces (coleoptere) en ligne et mes zones en colomne de type :

A1 A2 A3 etc...
Ips_typographus 0 2 1...
Pytho_depressus 1 0 0...
Ipidia_binotata 0 0 1...
etc...

Je souhaiterais, lorsque je plot mon acp via dudi.pca, de pouvoir colorier les espèces selon la colonne à laquelle ils appartiennent. J'ai essayé avec d'autres packages mais sans succès

Amicalement
rs

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: pca ade4 colorier par colomne

Messagepar Mickael Canouil » 09 Mai 2016, 13:33

Bonjour,

si vous tracer votre graphique via la fonction s.class du package ade4, vous pouvez définir les couleurs des "classes" via l'argument "fac".
Il s'agira ici de définir votre variable comme une variable factorielle ayant pour valeur le nom de la colonne par exemple.

Code : Tout sélectionner

dta <- read.table(text = "A1 A2 A3
Ips_typographus 0 2 1
Pytho_depressus 1 0 0
Ipidia_binotata 0 0 1")

group <- as.factor(apply(dta, 1, which.max))

Si l'on admet que la colonne d'appartenance est la colonne avec la plus grande valeur.
Mickaël
mickael.canouil.fr | rlille.fr

remy saurat
Messages : 6
Enregistré le : 09 Mai 2016, 08:55

Re: pca ade4 colorier par colomne

Messagepar remy saurat » 09 Mai 2016, 15:41

Je ne maitrise pas bien la fonction s.class mais il me semble la fonction fac ne sert-elle pas à partitionner des lignes (groupées) en classe ?

Si oui, cela ne m'interesse pas

Code : Tout sélectionner

               A1  A2  A3  A4  A5  A6  B7  B8      etc...
Ips            0    2    1    0     0    0   3    1...
Pytho          1    0    0    0     0    0   2    0...
Ipidia         0    1    0    0     0    0   0    0...
Melandrya      0    0     0    0    2    0   0   0...


Ce que je veux dire, c'est que j'aimerai colorier les coordonnées, sur le plot de l'acp, de mes espèces (se trouvant en ligne) en fonction de leur présence ou non dans les colonnes (mes échantillons).
Donner une couleur par colonne, ex : A1 = bleue A2 = vert etc...

Cordialement

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: pca ade4 colorier par colomne

Messagepar Mickael Canouil » 09 Mai 2016, 16:19

Ce que vous appelez "plot de l'acp" est la représentation de vos données sur les composantes principales, si oui s.class permet donc de faire ce graphique.

Vous souhaitez colorez vos espèces selon la "colonne d'appartenance", nous pouvons donc assimiler ceci à une classe, ce à quoi répond l'argument "fac" de s.class

Voici un exemple complétement bidon:

Code : Tout sélectionner

library(ade4)
data(deug)
dta <- deug$tab

## Création des noms d'espèces pour les noms de lignes
rownames(dta) <- paste0("Species", sprintf("%0.3d", seq_len(nrow(dta))))

### Création d'une table d'appartenance avec les espèces en lignes
tabAppartenance <- table(rownames(dta), cut(seq_len(nrow(dta)), 3))

### Création de la variable d'appartenance à une colonne
groups <- as.factor(apply(tabAppartenance, 1, which.max))

### Réalisation de l'acp
deug.dudi <- dudi.pca(dta, scale = FALSE, scan = FALSE)

### Représentation de l'ACP  (premier plan factoriel) avec coloration selon la variable d'appartenance à la colonne
s.class(deug.dudi$li, fac = groups, cstar = 0, cellipse = 0, col = rainbow(length(unique(groups))), clabel = 0)
Mickaël
mickael.canouil.fr | rlille.fr

remy saurat
Messages : 6
Enregistré le : 09 Mai 2016, 08:55

Re: pca ade4 colorier par colomne

Messagepar remy saurat » 10 Mai 2016, 07:10

Bonjour,

Merci du coup de main.

Cordialement


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité