web-dev-qa-db-fra.com

Nombre exact de bacs dans l'histogramme en R

J'ai du mal à faire un histogramme en R. Le problème est que je lui dis de faire 5 bacs mais ça fait 4 et je dis de faire 5 et ça en fait 8.

data <- c(5.28, 14.64, 37.25, 78.9, 44.92, 8.96, 19.22, 34.81, 33.89, 24.28, 6.5, 4.32, 2.77, 17.6, 33.26, 52.78, 5.98, 22.48, 20.11, 65.74, 35.73, 56.95, 30.61, 29.82);

hist(data, nclass = 5,freq=FALSE,col="orange",main="Histogram",xlab="x",ylab="f(x)",yaxs="i",xaxs="i")

Des idées sur la façon de le réparer?

14
Eduardo

Utilisez l'argument breaks:

hist(data, breaks=seq(0,80,l=6),
       freq=FALSE,col="orange",main="Histogram",
       xlab="x",ylab="f(x)",yaxs="i",xaxs="i")

enter image description here

21
Rob Hyndman

L'entier spécifié comme argument pour nclass est utilisé comme suggestion:

le nombre n'est qu'une suggestion

Une autre solution consiste à cut votre vecteur dans un nombre spécifié de groupes et à tracer le résultat:

plot(cut(data, breaks = 4))

enter image description here

12
Sven Hohenstein

S'appuyant sur la réponse de Rob Hyndman:

Une solution plus générique serait peut-être de faire les ruptures en considérant les valeurs minimun et maximun des données, et le nombre de ruptures = nombre_de_bins + 1.

hist(data,breaks=seq(min(data),max(data),l=number_of_bins+1), 
     freq=FALSE,col="orange",
     main="Histogram",xlab="x",ylab="f(x)",yaxs="i",xaxs="i")
9
jlainoc

J'aime être assez précis sur mes points de données:

hist(data,breaks = seq(min(data),max(data),by=((max(data) - min(data))/(length(data)-1))))

Cela devrait automatiser le processus avec peu de saisie manuelle.

2
mjp

Si vous n'êtes pas opposé à utiliser autre chose que des graphiques de base, il y a toujours la façon de faire ggplot2:

bibliothèque (ggplot2)

data <- data.frame (x = data)

    ggplot(data, aes(x=x))+
      geom_histogram(binwidth=18,color="black", fill="grey")+
      scale_x_continuous(breaks=c(0,20,40,60,80)

ggplot2 a une excellente documentation sur: docs.ggplot2.org/current/

Pour des exemples spécifiques d'histogramme: http://docs.ggplot2.org/current/geom_histogram.html

2
Sardimus