Bonjour,
Le nombre de classes se calcul avec les fonctions nclass.xx, par défaut nclass.Sturges et ensuite hist utilise la fonction pretty pour définir les breaks :
Le nombre classe étant la longueur-1 de ce vecteur. Par contre ça ne te dira pas s'il y a des colonnes "vides". Si elles doivent compter pour définir les couleurs alors le code précédent fonctionne, sinon pas d'autres moyens que de récupérer les sorties de l'histogramme et de compter le nombre de colonnes avec des valeurs > 0 :
Code : Tout sélectionner
x <- c(-0.08, -1.39, 0.78, 0.54, 0.62, 1.25, 0.09, -0.43, -1.69, 0.12,
-1.1, -0.48, 0, 0.93, 1.76, 2.06, 0.04, -0.67, 1.69, -1.56, -0.53,
-1.03, 0.94, 0.15, -0.67, 0.62, -3.02, 1.31, 0.45, 0.87, -0.17,
-0.71, -1.35, 1.46, 2.19, 1.67, 0.75, -0.56, -0.61, 0.45, -1.31,
-0.59, 1.91, -0.63, 0.7, -0.93, -0.49, -1.28, 0.43, -1.48, -1.98,
0.14, -0.17, 0.58, 0.84, 1.13, 0.27, 0.89, -0.74, 0.35, 1.57,
0.41, -0.36, 0.68, -0.09, 1.97, -0.83, -1.38, -1.57, -1.24, 0.57,
-0.5, -0.33, 1.5, 0.06, 0.67, 1.35, -1.57, 1.97, 0.41, 0.13,
1.76, -0.52, -0.1, 0.37, -0.64, -1.43, -0.19, -0.81, -1.24, 0.7,
0.55, -0.31, -1.69, 0.97, 1.12, 0.14, -0.51, 1.17, -0.34)
h <- hist(x, plot = FALSE)
nc <- with(h, sum(counts>1e-7))
cols <- rep("black", length(h$counts))
cols[h$counts>1e-7] <- rainbow(nc)
plot(h, col = cols)
#différent de
plot(h, col = rainbow(nc))
# différent de
plot(h, col = rainbow(length(h$counts)))
Cordialement,
Maxime