2017-09-29 1 views
3

J'ai vu beaucoup de questions concernant la conversion du nombre sur l'axe des y en pourcentage, mais la plupart d'entre elles sont en graphique à barres.Comment afficher le pourcentage d'étiquettes sur les barres d'histogramme à l'aide de ggplot2

Je veux faire une chose similaire dans l'histogramme, mais je ne peux pas montrer clairement les étiquettes sur la barre. S'il vous plaît, dites-moi où je me trompe.

x = runif(100, min = 0, max = 10) 
data1 <- data.frame(x = x) 

ggplot(aes(x = x), data = data1)+ 
geom_histogram(aes(y = (..count..)/sum(..count..)), bins = 10, breaks = 
seq(0,10,1), fill = "blue", col = "black")+ 
geom_text(aes(y = ((..count..)/sum(..count..)), 
      label = scales::percent((..count..)/sum(..count..))), 
     stat = "count", vjust = -10)+ 
scale_y_continuous(labels = scales::percent) 

Sortie:

enter image description here

Répondre

3

Utilisez scale_y_continous avec des pauses et des étiquettes va résoudre votre problème.

data1 <- data.frame (x = runif(100, min = 0, max = 10)) 
ggplot(aes(x=x), data1) + stat_bin(aes(y = ..count..)) 
ggplot(data1, aes(x = x)) + geom_histogram(fill = "blue", col = "black")+ scale_y_continuous(breaks = seq(0,10,1),labels = paste(seq(0, 10, by = 1)/100, "%", sep = ""))+geom_text(aes(y = (..count..),label = scales::percent((..count..)/sum(..count..))), stat="bin",colour="green",vjust=2) 

ou, vous pouvez indiquer où vous souhaitez ajouter le pourcentage comme celui-ci:

geom_text(aes(y = (..count..)+0.5)) 

Bien sûr, vous pouvez changer la couleur aussi. de,

stat="bin",colour="your prefer color " 

vous pouvez également modifier la largeur des bacs comme suit:

geom_histogram(fill = "blue", col = "black", binwidth = 0.5) 

enter image description here

enter image description here

heres the graph

+0

comment montrer le pour cent sur le dessus de chaque barre individuellement? –

+1

vous pouvez toujours utiliser votre 'geom_text' cela fonctionnera. Changez juste légèrement: 'geom_text (aes (y = (..count ..), label = votre code)' –

+0

voir la réponse J'espère que cela vous aidera avec votre problème –