Jaka jest różnica (jeśli występuje) między geom_bar a geom_histogram w ggplot? Wydają się wytwarzać tę samą fabułę i przyjmują te same parametry.ggplot geom_bar vs geom_histogram
Odpowiedz
- Wykresy słupkowe zapewniają wizualną prezentację danych jakościowych. Przykłady:
- Histogramy stosuje się do wykreślenia gęstość interval numerycznymi (zazwyczaj) danych. Przykłady,
- Rozkłady wieku i wzrostu
geom_hist
help file. Przykładami są rozkład ocen filmów.
ggplot2
Po nieco więcej śledztwo, myślę, że w ggplot2 nie ma różnicy między geom_bar
i geom_histogram
. Od docs:
geom_histogram(mapping = NULL, data = NULL, stat = "bin",
position = "stack", ...)
geom_bar(mapping = NULL, data = NULL, stat = "bin",
position = "stack", ...)
Zdaję sobie sprawę, że w geom_histogram
docs stwierdza:
geom_histogram jest aliasem dla geom_bar powiększonej stat_bin
ale szczerze mówiąc, nie jestem naprawdę jestem pewien, co to oznacza, ponieważ moje zrozumienie ggplot2 jest takie, że zarówno stat_bin, jak i geom_bar są warstwami (z nieco innym naciskiem).
Myślę, że to nie jest reprezentowane w ggplot dokładnie jako ggplot (diamenty, aes (głębokość)) + geom_histogram (aes (y = .. gęstość ..)) i ggplot (diamenty, aes (głębokość)) + geom_bar (aes (y = .. gęstość ..)) powoduje, że ta sama działka (która jest histogramem) – jamborta
Wykresy gęstości nie są histogramami, wykresy gęstości nie są wartościami procentowymi, wykresy gęstości są wykresami gęstości. cf http://stackoverflow.com/questions/17655648/how-can-i-plot-the-relative-proporcje-dwóch-grup-using-a-fill-aesthetic-in dla więcej cytowań. – russellpierce
Domyślne zachowanie jest takie samo zarówno dla geom_bar, jak i geom_histogramu. Dzieje się tak, ponieważ (i jak wspomniano o @csgillespie), istnieje domniemany stat_bin, gdy wywołujesz geom_histogarm (zrozumiałe), a także jest to domyślna transformacja statystyk zastosowana do geom_bar (arguable behaviour IMO). Dlatego musisz określić stat='identity'
, kiedy chcesz wykreślić dane bez zmian.
The stat='bin'
lub stat_bin()
jest transformacją statystyczną, którą ggplot robi dla ciebie. To oferuje jako wyjście zmienne otoczone z dwóch kropek (The ..count..
i ..density..
. Jeśli nie podasz stat='bin'
nie dostaniesz tych zmiennych.
Jeśli spojrzeć na? Geom_histogram można zauważyć, że „geom_histogram jest aliasem for geom_bar plus stat_bin " –
Mówiąc jako matematyk :-), histogram różni się od wykresu słupkowego, nawet jeśli nazwy wydają się mieszać. Cytując z Wikipedii: "Histogram składa się z częstotliwości tabelarycznych, pokazanych jako sąsiednie prostokąty, wznoszonych w dyskretnych odstępach czasu (przedziałach), z obszarem równym częstotliwości obserwacji w przedziale. Wysokość prostokąta jest również równa częstotliwości gęstość interwału, tj. częstotliwość podzielona przez szerokość interwału Całkowita powierzchnia histogramu jest równa liczbie danych."Wykres słupkowy nie ma takich ograniczeń obszarowych –
dzięki. Chociaż wydaje się, że geom_bar() ma również zastosowany do niego parametr stat_bin(), ponieważ można uzyskać dostęp do zmiennych stat_bin, takich jak ..count .. i ..density .. – jamborta