Bonjour,
je reposte le message ci-apres qui pour une raison inconnue
a bien ete archive mais non distribue. Depuis, j'ai eu la
solution, donc je poste et la question et la reponse.
QUESTION:
---------
j'ai un probleme pour ajouter du texte sur les graphiques produits
par ade4 sous R. C'est illustre par l'exemple ci-dessous :
#########
#
# Generation d'un pseudo jeu de donnees :
#
set.seed(0.1071966) # Magic number for reproducibility
n <- 100
data <- runif(2*n)
dim(data) <- c(n, 2)
data <- data.frame(data)
#
# Definition d'une fonction qui essaye d'ajouter du texte partout :
#
show.me.text.visible <- function(length = 50, col = "red")
{
xx <- seq(0, 1, length = length)
for( i in xx )
{
for( j in xx )
{
text(i, j, "*", col = col)
}
}
}
#
# Avec plot() pas de probleme :
#
plot(data, xlim = c(0,1), ylim = c(0,1))
show.me.text.visible() # Ca c'est OK, on peut mettre du texte partout
#
# Avec s.value() probleme :
#
library(ade4)
s.value(data, z = rep(1,n), xlim = c(0,1), ylim = c(0,1))
show.me.text.visible() # Pas OK, on ne peut pas mettre du texte partout
#########
C'est embestant parce que c'est souvent en bordure que l'on ajoute
des annotations.
REPONSE:
--------
C'est un comportement normal puisque qu'en sortie de s.value()
les parametres graphiques sont restaures pour ne pas perturber
l'utilisateur.
Les valeurs par defaut des marges du graphique sont:
par("mar")
[1] 5.1 4.1 4.1 2.1
et donc on ne peut plus fort logiquement ecrire dans les marges.
Pour pouvoir ecrire partout il faut etendre les marges avant,
par exemple :
#########
s.value(data, z = rep(1,n), xlim = c(0,1), ylim = c(0,1))
par(mar = c(0.1, 0.1, 0.1, 0.1))
show.me.text.visible() # OK, on peut mettre du texte partout
#########
Zan
-- Jean R. Lobry (lobry@biomserv.univ-lyon1.fr) Laboratoire BBE-CNRS-UMR-5558, Univ. C. Bernard - LYON I, 43 Bd 11/11/1918, F-69622 VILLEURBANNE CEDEX, FRANCE allo : +33 472 43 12 87 fax : +33 472 43 13 88 http://pbil.univ-lyon1.fr/members/lobry/
This archive was generated by hypermail 2b30 : Sat Nov 06 2004 - 10:21:26 MET