La fonction plot peut recevoir un certain nombre de paramètres, notamment pch et col qui permettent, respectivement, de modifier la forme et la couleur de chaque point.
plot(iris$Sepal.Width, pch = as.numeric(iris$Species), col = iris$Species)
Le code ci-dessus affiche la variable Sepal.Width et donne à chaque point une forme et une couleur dépendante de la variable Species.
J’ai regardé un peu la documentation de FactoMineR. En fait la fonction plot.PCA (c’est cette fonction qui est appelé lorsqu’on évalue plot(pca)) s’écarte de la norme introduite par la fonction plot.
Il faut en réalité jouer avec les paramètres habillage et col.hab, de cette façon :
Par contre, on ne peut visiblement pas changer la forme des points. Pour ça, il va falloir écrire sa fonction d’affichage. Evaluer pca dans l’interpréteur nous donne pas mal d’informations :
> pca
**Results for the Principal Component Analysis (PCA)**
The analysis was performed on 150 individuals, described by 4 variables
*The results are available in the following objects:
name description
1 "$eig" "eigenvalues"
2 "$var" "results for the variables"
3 "$var$coord" "coord. for the variables"
4 "$var$cor" "correlations variables - dimensions"
5 "$var$cos2" "cos2 for the variables"
6 "$var$contrib" "contributions of the variables"
7 "$ind" "results for the individuals"
8 "$ind$coord" "coord. for the individuals"
9 "$ind$cos2" "cos2 for the individuals"
10 "$ind$contrib" "contributions of the individuals"
11 "$call" "summary statistics"
12 "$call$centre" "mean of the variables"
13 "$call$ecart.type" "standard error of the variables"
14 "$call$row.w" "weights for the individuals"
15 "$call$col.w" "weights for the variables"
J’en déduis que pca$ind$coord contient les coordonnées des données. Le code ci-dessous permet alors d’afficher un graphique similaire.
pca <- PCA(iris[,1:4])
x <- pca$ind$coord[, 1L] # Première dimension de la PCA
y <- pca$ind$coord[, 2L] # Deuxième dimension de la PCA
pch <- as.numeric(iris$Species)
col <- iris$Species
plot(x, y, col = col, pch = pch)
Par contre, c’est quoi comme langage de prog qui quand tu fait plot(pca) appel PCA.plot(pca) Si j’avais écris pca.plot() ok, mais la ca me semble bien contre-intuitif…
C’est le (enfin, l’un des) mécanisme de programmation orienté objet de R qui fonctionne comme ça. L’objet retourné par la fonction PCA retourne une liste dont la valeur de l’attribut "class" est "PCA". On dit que PCA est une classe S3.
Certaines méthodes, telles que plot, sont des méthodes dites génériques. En pratique, ça signifie qu’elle vont rediriger (on parle de dispatch) les paramètres qu’elle reçoit à la bonne fonction. Par exemple, la fonction plot appelle la fonction plot.class, où class est remplacé par la classe de l’objet, avec tous les paramètres passés initialement à plot.
Connectez-vous pour pouvoir poster un message.
Connexion
Pas encore membre ?
Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte