Bonjour,
La représentation donnée par la fonction "kplot" dans l'ACOM est très
intéressante, mais quelquefois un peu difficile à lire.
Il pourrait être intéressant de l'améliorer en permettant de représenter
les flèches en couleur, dans le cas où nos points peuvent être regroupés en
quelques classes.
Dans mon exemple, les données que je représente dans le kplot sont des
espèces, qui peuvent être regroupées en 3 classes : marines, continentales,
estuariennes. Il est plus agréable et plus lisible au premier abord,
d'obtenir un graphe représentant par exemple les flèches des espèces
marines en rouge, des espèces continentales en noir et des espèces
estuariennes en vert.
J'ai réussi à arriver à mes fins en rajoutant quelques lignes et un
paramètre ("clascol") à la fonction "s.match" :
smatch<-function (df1xy, df2xy, xax = 1, yax = 2, pch = 20, cpoint = 1,
label = row.names(df1xy), clabel = 1, edge = TRUE, xlim = NULL,
ylim = NULL, grid = TRUE, addaxes = TRUE, cgrid = 1, include.origin =
TRUE,
origin = c(0, 0), sub = "", csub = 1.25, possub = "bottomleft",
pixmap = NULL, contour = NULL, area = NULL, add.plot = FALSE,
clascol=NULL)
{
.....
coo <- scatterutil.base(dfxy = rbind.data.frame(df1xy, df2xy),
xax = xax, yax = yax, xlim = xlim, ylim = ylim, grid = grid,
addaxes = addaxes, cgrid = cgrid, include.origin = include.origin,
origin = origin, sub = sub, csub = csub, possub = possub,
pixmap = pixmap, contour = contour, area = area, add.plot = add.plot)
for (i in 1:n) {
col<-clascol[i]
arrow1(coo$x[i], coo$y[i], coo$x[i + n], coo$y[i + n],
lty = 1, edge = edge, col=col)
if (cpoint > 0)
points(coo$x[i], coo$y[i], pch = pch, cex = par("cex") *
cpoint, col=col)
}
box()
}
L'option "clascol" (pour couleur des classes) est un vecteur numérique de
longueur égale au nombre de points à représenter. Il indique pour chaque
ligne (point) la couleur que l'on souhaite.
exemple de vecteur "clascol" :
> clascol
[1] "2" "1" "3" "2" "2" "1" "2" "2" "1" "2" "2" "2" "2" "2" "1" "2" "1" "1"
[19] "2" "1" "2" "2" "2" "2" "2" "2" "2" "2" "2" "2" "2" "3" "3" "1" "2" "2"
[37] "2" "2" "1" "2" "2" "2" "1" "2" "2" "2" "2" "2" "2" "2" "3" "2" "2" "2"
[55] "2" "2" "2" "1" "2" "1" "2" "3" "3" "3" "2" "2" "2"
J'obtiens avec ce vecteur des flèches noires (1), rouges (2) et vertes (3).
Un exemple de représentation en couleur est donnée en pièce jointe.
Il peut également être utile de pouvoir représenter les flèches, non plus
avec des couleurs différentes, mais avec des types différents (ligne
pleine, pointillés, tirets...), pour des sorties en noir et blanc.
Charline LAURENT
This archive was generated by hypermail 2b30 : Tue Sep 07 2004 - 14:58:34 MEST