Problème avec la fonction image()

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

Diane MANZON
Messages : 56
Enregistré le : 18 Juin 2018, 08:31

Problème avec la fonction image()

Messagepar Diane MANZON » 04 Juin 2019, 07:32

Bonjour à tous,

Je voudrais utiliser la fonction image pour représenter une zone spécifique...
Voici un code reproductible:

Code : Tout sélectionner

#Génération de ma grille de points
r <- 1
scale = 0.025
x <- seq(-r, r, scale)
nrow.m <- ncol.m <- length(x)
Xg <- expand.grid(X1 = 1:nrow.m, X2=1:ncol.m)
Xg$X1g <- (Xg$X1-1)*scale-r
Xg$X2g <- (Xg$X2-1)*scale-r
Xg$sphere <- sqrt(Xg[,3]^2 + Xg[,4]^2)
Xg <- Xg[Xg$sphere<r,] #grille de points
Xg$D <- as.numeric(runif(nrow(Xg))<0.1) # ajout d'une colonne avec des 0 et des 1
m <- matrix(nrow=nrow.m,ncol=ncol.m)
m[as.matrix(Xg[1:2])] <- Xg$D
image(x,x,m,asp=1,col=c("gray","white")) # représentation selon 0 et 1


Au lieu d'ajouter une condition comme pour la colonne D, j'ai appliqué plusieurs traitements sur cette matrice Xg qui ont permis d'éliminer un certain nombre de points (Xg').
Je voudrais utiliser la fonction image pour représenter la matrice Xg en gris et en blanc les points restants (Xg').

Quelqu'un sait-il comment faire?

Je vous remercie par avance,

Diane

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: Problème avec la fonction image()

Messagepar Logez Maxime » 04 Juin 2019, 08:57

Bonjour,

Avec la fonction image je ne sais pas mais avec les fonctions de bases telles plot et symbols tu peux y arriver.

Code : Tout sélectionner

# une possibilité :
Xg <- expand.grid(X1 = 1:nrow.m, X2=1:ncol.m)
Xg$X1g <- (Xg$X1-1)*scale-r
Xg$X2g <- (Xg$X2-1)*scale-r
Xg$sphere <- sqrt(Xg[,3]^2 + Xg[,4]^2)
Xg <- Xg[Xg$sphere<r,] #grille de points

Xgp <- Xg[runif(nrow(Xg))<0.1,]

# trace la fenêtre graphique
plot(0, 0, type = "n", xlim = range(x), ylim = range(x), xlab = "X1", ylab = "X2")
# les carrés gris
symbols(x[Xg$X1], x[Xg$X2],squares = rep((1-0.975), nrow(Xg)), bg = "grey", fg = "grey", add = TRUE, inches = FALSE)
# les blancs issus de la sélection
symbols(x[Xgp$X1], x[Xgp$X2],squares = rep((1-0.975), nrow(Xgp)), bg = "white", fg = "grey", add = TRUE, inches = FALSE)
A toi de jouer sur les paramètres fg (couleur du contour) et bg (couleur du fong) pour représenter des carrés comme tu le souhaites.

Cordialement,
Maxime

Diane MANZON
Messages : 56
Enregistré le : 18 Juin 2018, 08:31

Re: Problème avec la fonction image()

Messagepar Diane MANZON » 05 Juin 2019, 13:22

Bonjour Maxime,

Merci pour ta réponse j'arrive à faire exactement ce que je cherchais !!

Bonne journée

Diane


Retourner vers « Questions en cours »

Qui est en ligne

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