En normalisant l'axe des y dans les histogrammes dans la R ggplot à proportion
J'ai une question très simple, me faisant bang ma tête sur le mur.
Je tiens à l'échelle de l'axe des y de mon histogramme afin de refléter la proportion (de 0 à 1) que chaque bin en fait, au lieu d'avoir de la zone des bars de la somme de 1, que l'utilisation d'y=..densité.. n', le bar le plus haut de 1, y=..ncount.. ne.
Mon entrée est une liste de noms et de valeurs, formaté comme suit:
name value
A 0.0000354
B 0.00768
C 0.00309
D 0.000123
Un de mes tentatives ont échoué:
library(ggplot2)
mydataframe < read.delim(mydata)
ggplot(mydataframe, aes(x = value)) +
geom_histogram(aes(x=value,y=..density..))
Cela me donne un histogramme de la zone 1, mais les hauteurs de 2000 et 1000:
et y=..ncount.. donne moi un histogramme avec la barre la plus haute 1.0, de repos et de mise à l'échelle pour elle:
mais je voudrais avoir la première le bar ont une hauteur de 0,5, et les deux autres de 0,25.
R ne reconnaît pas toutes ces utilisations de l'scale_y_continuous soit.
scale_y_continuous(formatter="percent")
scale_y_continuous(labels = percent)
scale_y_continuous(expand=c(1/(nrow(mydataframe)-1),0)
Merci pour toute aide.
Vous devez vous connecter pour publier un commentaire.
Noter que
..ncount..
redimensionne à un maximum de 1.0, tandis que..count..
est la non mis à l'échelle bin comte.Qui donne:
aes(y=1-cumsum(..count..)/sum(..count..))
.De ggplot2 0.9, beaucoup de formateur fonctions ont été déplacés vers les échelles, y compris
percent_format()
.Comme de la plus récente et la plus ggplot2 la version 3.0.0, le format a changé. Maintenant, vous pouvez enrouler le
y
valeur dansstat()
plutôt que de vous embêter avec..
choses.