Histogramme

Questions sur les fonctions graphiques de R

Modérateur : Groupe des modérateurs

LA haumont
Messages : 41
Enregistré le : 16 Mai 2006, 09:33

Histogramme

Messagepar LA haumont » 19 Juil 2006, 14:50

Bonjour
je dois réaliser un histogramme donc j'utilise forcément la commande hist . Mais le problème c'est que je dois faire des classes pour les 2000 premiers jours et au delà les regroupé de 2000 a 4500 et je ne trouve pas la fonction . J'ai essayé avec breaks mais ca ne me donne pas le bon résultat...y aurait t'il un autre moyen
Merci

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

Messagepar Renaud Lancelot » 20 Juil 2006, 21:41

Apprendre à utiliser l'argument breaks ;-)

Code : Tout sélectionner

> v <- sample(1:5000, size = 1000)
> brk <- hist(v, plot = FALSE)$breaks
>
> brk
 [1]    0  500 1000 1500 2000 2500 3000 3500 4000 4500 5000
> brk <- brk[-(7:10)]
> brk
[1]    0  500 1000 1500 2000 2500 5000
>
> hist(v, breaks = brk)


Le résultat n'est pas "joli" mais un histogramme est un estimateur de la densité de probabilité d'une v.a. ==> rien à voir avec un graphe à bâtons...

Renaud

LA haumont
Messages : 41
Enregistré le : 16 Mai 2006, 09:33

Messagepar LA haumont » 21 Juil 2006, 08:06

ce que je ne comprends pas c'est que dans votre exemple je ne place nul part mon fichier avec mes données!
Désolé!

LA haumont
Messages : 41
Enregistré le : 16 Mai 2006, 09:33

Messagepar LA haumont » 21 Juil 2006, 12:43

je vais réexpliquer mon problème car pas sure que vous ayez forcément compris!

En fait dans un fichier , j'ai une colonne avec les écarts en jour entre 2 interventions médicales et je dois faire un histogramme représentant la fréquence de personnes pour une classe en jours . Par exemple 1ère classe: 0-50; 2ème : 50-100 et à partir de 2000 on garde la même calsse(2000 et +)

Merci beaucoup

Pierre Bady
Messages : 405
Enregistré le : 02 Mai 2006, 07:46

Messagepar Pierre Bady » 21 Juil 2006, 13:02

bonjour,

Le résultat n'est pas "joli" mais un histogramme est un estimateur de la densité de probabilité d'une v.a. ==> rien à voir avec un graphe à bâtons...


ça ressemble plutôt à un barplot :\
et un barplot, ... c'est pas un histogramme

cf la remarque de Renaud :

Le résultat n'est pas "joli" mais un histogramme est un estimateur de la densité de probabilité d'une v.a. ==> rien à voir avec un graphe à bâtons...


voici un exemple qui devrait (j'espère) répondre à ta question :

Code : Tout sélectionner

v <- sample(1:5000, size = 1000)
fv <- rep(NA,length(v))
fv <- ifelse(v >=0 & v < 500,"c1",fv)
fv <- ifelse(v >=500 & v < 1000,"c2",fv)
fv <- ifelse(v >=1000,"c3",fv)
fv <- as.factor(fv)
sfv <- summary(fv)
barplot(sfv)





en espérant avoir aidé un peu :)

@+++

pierre
=@===--------¬-------¬------¬-----¬
liens utiles :
http://www.gnurou.org/Writing/SmartQuestionsFr
http://neogrifter.free.fr/welcomeOnInternet.jpg
]<((((*< -------------------------------

LA haumont
Messages : 41
Enregistré le : 16 Mai 2006, 09:33

Messagepar LA haumont » 25 Juil 2006, 08:26

merci en effet ca ma bien aidé , par contre les classes ne se mettent pas dans l'ordre ya la classe 32 avant la 2 ...

Pierre Bady
Messages : 405
Enregistré le : 02 Mai 2006, 07:46

Messagepar Pierre Bady » 25 Juil 2006, 08:51

bonjour,


merci en effet ca ma bien aidé , par contre les classes ne se mettent pas dans l'ordre ya la classe 32 avant la 2 ...


tu as peut-être un problème dans l'écriture du nom de ta classe:
" 32" est localisé avant 2
"32" est localisé après 2
l'espace compte comme un character.

Code : Tout sélectionner

> sort(c(" 32","2"))
[1] " 32" "2" 
> sort(c("32","2"))
[1] "2"  "32"
>

voici un p'tit exemple pour illustrer mes propos :

Code : Tout sélectionner

v <- sample(1:5000, size = 1000)
fv <- rep(NA,length(v))
fv <- ifelse(v >=0 & v < 500,"c1",fv)
fv <- ifelse(v >=500 & v < 1000,"ac2",fv)
fv <- ifelse(v >=1000," c3",fv)
fv <- as.factor(fv)
sfv <- summary(fv)
par(mfrow=c(1,2))
barplot(sfv)
# pour remettre le vecteur dans l'ordre
vec <- c(3,2,1)
levels(fv)
levels(fv)[vec]
barplot(sfv[vec])



en espérant avoir aidé un peu :)

@+++

pierre
=@===--------¬-------¬------¬-----¬

liens utiles :

http://www.gnurou.org/Writing/SmartQuestionsFr

http://neogrifter.free.fr/welcomeOnInternet.jpg

]<((((*< -------------------------------

LA haumont
Messages : 41
Enregistré le : 16 Mai 2006, 09:33

Messagepar LA haumont » 25 Juil 2006, 09:35

en fait j'ai compris mon erreur. le truk c'est que j'ai 40 classes a faire et en fait en les numérotant de 1 à 40, le 11,12,13... passe avant le 2, ect!!
Mais ya toujours quelque chose que je ne comprend pas c'est ou est ce qu'on met la colonne choisie parce que mon résultat ne resemble pas du tout a mon plot donc il y a un problème!!
merci

Pierre Bady
Messages : 405
Enregistré le : 02 Mai 2006, 07:46

Messagepar Pierre Bady » 26 Juil 2006, 07:09

bonjour,


Mais ya toujours quelque chose que je ne comprend pas c'est ou est ce qu'on met la colonne choisie parce que mon résultat ne resemble pas du tout a mon plot donc il y a un problème!!


pourrais-tu préciser en peu plus ... je ne comprends pas trop la question.

dans la fonction "barplot", le vecteur (ou la matrice) de données à représenter correspond à l'argument "height" (ça correspond à la hauteur des barres, cf ?barplot).


en espérant avoir aidé un peu :)

@+++

pierre
=@===--------¬-------¬------¬-----¬

liens utiles :

http://www.gnurou.org/Writing/SmartQuestionsFr

http://neogrifter.free.fr/welcomeOnInternet.jpg

]<((((*< -------------------------------

LA haumont
Messages : 41
Enregistré le : 16 Mai 2006, 09:33

Messagepar LA haumont » 26 Juil 2006, 08:45

en fait je me suis planté, désolé!
aussi je voulais savoir si il était possible de supprimer les valeurs Na dans le barplot ?
merci

Pierre Bady
Messages : 405
Enregistré le : 02 Mai 2006, 07:46

Messagepar Pierre Bady » 26 Juil 2006, 08:59

bonjour,


tu peux toujours utiliser un "na.omit" ou la commande "is.na".

petit exemple:

Code : Tout sélectionner

> vec <- rpois(15,lambda=4)
> vec
 [1] 5 1 2 6 4 3 1 1 3 8 2 3 6 8 8
> vec[c(2,4,11)] <- rep(NA,3)
> as.vector(na.omit(vec))
 [1] 5 2 4 3 1 1 3 8 3 6 8 8
> vec[!is.na(vec)]
 [1] 5 2 4 3 1 1 3 8 3 6 8 8
>
> par(mfrow=c(2,2))
> barplot(vec)
> barplot(vec[!is.na(vec)])
> barplot(as.vector(na.omit(vec)))
>


en espérant avoir aidé un peu :)

@+++

pierre
=@===--------¬-------¬------¬-----¬

liens utiles :

http://www.gnurou.org/Writing/SmartQuestionsFr

http://neogrifter.free.fr/welcomeOnInternet.jpg

]<((((*< -------------------------------


Retourner vers « Archives : Fonctions graphiques »

Qui est en ligne

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