2017-12-30 19 views
0

Ich versuche ein Histogramm mit ggplot zu erstellen. Ich verstehe nicht ganz, wie Binwidth funktioniert.ggplot2 - geom_histograms binwidth mit scale_x_log10

library(ggplot2) 
set.seed(10) 
testData = data.frame(x=rlnorm(100, log(1), log(2.5))) 
ggplot(data=testData, aes(x=testData$x)) + 
geom_histogram(binwidth=1)+scale_x_log10() 

Wie bekomme ich 1 bar pro Größenordnung? (dh 1 bar zwischen 10^-1 und 10^0, 1 bar zwischen 10^0 und 10^1, ...)

Antwort

1

Eine Möglichkeit ist die cut() Funktion zum Gruppieren der Daten und dann zählen durch die Gruppe

library(ggplot2) 
set.seed(10) 
x=rlnorm(100, log(1), log(2.5)) 
testData = data.frame(x = x, grp = cut(x, c(0.1, 1, 10))) 
ggplot(data=testData, aes(grp)) + 
    stat_count() 
+0

Nicht ganz die Lösung, die ich erwartete, aber eine große Arbeit um! Angenommen, ich möchte über dieser Grafik eine geom_density-Ebene des ursprünglichen Datasets überlagern. Irgendwelche Tipps, wie Sie das mit Ihrer "Conversion-to-Factor-Lösung" machen können? Danke im Voraus. –

Verwandte Themen