représentation graphique

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

Corrine fontaine
Messages : 8
Enregistré le : 14 Nov 2008, 19:24

représentation graphique

Messagepar Corrine fontaine » 16 Nov 2008, 20:51

Bonjour,

Je souhaite représenter graphiquement une variable à l'aide de palette de 5 couleurs en fonction des valeurs à représenter , par exp :
- rouge pour toutes les valeurs entre 0 et 10
- vert pour toutes les valeurs entre 10 et 20
...
- bleu pour toutes les valeurs entre 40 et 50

je ne trouve pas comment faire (je ne sais pas si c'est faisable !)

J'ai vu qu'il avait des palettes prédéfinis sauf que je ne trouve pas les couleurs que je souhaite avoir.

Avez vous des idées ?

Aussi je souhaite enregistrer l'image résultat du plot en PNG mais sans aucune autre information c'est à dire sans axe x , sans axe y sans cadre autour de l'image

Comment faire ?

Merci d'avance

Olivier Delaigue
Messages : 220
Enregistré le : 05 Déc 2006, 07:38

Messagepar Olivier Delaigue » 17 Nov 2008, 07:27

Code : Tout sélectionner

x <- sample(60, 60)
y <- sample(60, 60)

palette(c("red", "green", "blue"))
col <- as.numeric(cut(x, breaks = c(0, 20, 40, 60)))

png("mygraph.png")
plot(x, y, col = col, xlab = "", ylab = "", axes = FALSE)
dev.off()

Corrine fontaine
Messages : 8
Enregistré le : 14 Nov 2008, 19:24

Messagepar Corrine fontaine » 17 Nov 2008, 09:41

Merci pour votre réponse.
Est ce que pour vous x est la variable que je veux représenter ?
Si oui y c'est quoi ?

Merci

Olivier Delaigue
Messages : 220
Enregistré le : 05 Déc 2006, 07:38

Messagepar Olivier Delaigue » 17 Nov 2008, 09:56

x est la variable que tu veux représenter en cinq couleurs.
Je l'ai mis en abscisse et j'ai ajouté une variable "y" seulement pour l'exemple. Je n'ai pas bien compris quel graphique tu souhaitais.

Corrine fontaine
Messages : 8
Enregistré le : 14 Nov 2008, 19:24

Messagepar Corrine fontaine » 17 Nov 2008, 10:12

Je travaille sur des données environnementaux sur un pays.
J'utilise la librairie Gstat. Mon graphique est donc une image qui représente ma variable sur tout le pays (grille réguliére)
et je veux avoir un png de cela.
Donc la variable que je veux représenter est var sur mon pays qui est pays_test

su je reprend ton code

1. comment lui dire que var est un champs des donées pays_test ? 60 représente ici la valeur max de ma variable var ?
var <- sample(60, 60)
palette(c("red", "green", "blue"))
col <- as.numeric(cut(var, breaks = c(0, 20, 40, 60)))
png("mygraph.png")

2.Est ce que le plot serait plutot comme ça ?
[i]plot(pays_test["var"], col = col, xlab = "", ylab = "", axes = FALSE)
dev.off()[/i]

Merci pour ton aide (vu que je galére depuis plusieurs jours!)

Olivier Delaigue
Messages : 220
Enregistré le : 05 Déc 2006, 07:38

Messagepar Olivier Delaigue » 17 Nov 2008, 10:35

Que contient pays_test ? Les coordonnées des points ?

var <- sample(60, 60), ce n'est que pour l'exemple puisque j'ignore quelle est ta variable "var". Je suppose que tu ne veux pas représenter des points tirés au hasard (lire l'aide de sample()).
Il faut donc que tu modifies la palette et les classes de tes couleurs pour obtenir tes 5 classes.
Dans le cut() ta valeur maximale de classe sera donc 50 et non 60 comme dans mon exemple.

Après, tu traces tes points qui sont visiblement alignés sur une grille régulière en leur affectant les couleurs selon la variable col <- as.numeric(cut(var, breaks = c(0, 10, 20, 30, 40, 50))) :
plot(abscisse, ordonnée, col = col, xlab = "", ylab = "", axes = FALSE)

Corrine fontaine
Messages : 8
Enregistré le : 14 Nov 2008, 19:24

Messagepar Corrine fontaine » 17 Nov 2008, 10:44

pays _test contient trois champs
abscisse,ordonnée, var
var est une valeur qui va de 0 à 120 et c'est ce que je veux représenter en 5 couleurs

Olivier Delaigue
Messages : 220
Enregistré le : 05 Déc 2006, 07:38

Messagepar Olivier Delaigue » 17 Nov 2008, 10:52

Code : Tout sélectionner

palette(c("red", "green", "blue", "orange", "brown")) #au choix
col.var <- as.numeric(cut(pays_test$var, breaks = c(0, 24, 48, 72, 96, 120))) #si les 5 classes sont régulières

png("mygraph.png")
plot(pays_test$abscisse, pays_test$ordonnée, col = col.var, xlab = "", ylab = "", axes = FALSE)
dev.off()

Corrine fontaine
Messages : 8
Enregistré le : 14 Nov 2008, 19:24

Messagepar Corrine fontaine » 17 Nov 2008, 11:25

ça à l'air de super bien fonctionner .
mon erreur était d'avoir mis
pays_test["var"] à la place de pays_test$var
Merci pour ton aide !
En espérant que ça serve à d'autres!

Corrine fontaine
Messages : 8
Enregistré le : 14 Nov 2008, 19:24

Messagepar Corrine fontaine » 20 Nov 2008, 10:14

Bonjour

J'utilise les fonctions png () et plot () (code précédent) pour exporter mon graphique vers un png.
Le résultat me permet d'avoir une image avec un espace autour.
Est ce qu'il y a un moyen de générer une image avec aucun espace autour => les bords de l'image sont les bords du fichier

Merci

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 20 Nov 2008, 10:17

Merci de commencer un autre fil de discussion.

Renaud


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité