2013-01-03 11 views
14

Qual è la differenza (se presente) tra geom_bar e geom_histogram in ggplot? Sembrano produrre la stessa trama e assumere gli stessi parametri.ggplot geom_bar vs geom_histogram

+4

Se si guarda? Geom_histogram troverete che "geom_histogram è un alias per geom_bar plus stat_bin " –

+0

Parlando da matematico :-), un istogramma è diverso da un grafico a barre, anche se i nomi tendono a essere mescolati. Citando da Wikipedia, "Un istogramma consiste di frequenze tabulari, mostrate come rettangoli adiacenti, eretti su intervalli discreti (bin), con un'area uguale alla frequenza delle osservazioni nell'intervallo.L'altezza di un rettangolo è anche uguale alla frequenza densità dell'intervallo, ovvero la frequenza divisa per la larghezza dell'intervallo. L'area totale dell'istogramma è uguale al numero di dati."Un grafico a barre non ha restrizioni di tipo –

+0

, anche se sembra che a geom_bar() sia applicato anche stat_bin(), in quanto è possibile accedere alle variabili stat_bin come ..count .. and ..density .. – jamborta

risposta

11
  • I grafici a barre forniscono una presentazione visiva dei dati categoriali. Esempi:
    • Il numero di persone con i capelli rossi, neri e marroni
    • sguardo al geom_barhelp file. Gli esempi sono tutti importanti.
    • Wikipedia page
  • istogrammi vengono utilizzati per tracciare la densità dei dati interval (di solito numerici). Esempi,
    • distribuzioni di età e altezza
    • geom_histhelp file. Gli esempi sono la distribuzione delle valutazioni dei film.

ggplot2

Dopo un po 'di più indagare, credo che in ggplot2 non v'è alcuna differenza tra geom_bar e geom_histogram. Dalla documentazione:

geom_histogram(mapping = NULL, data = NULL, stat = "bin", 
    position = "stack", ...) 
geom_bar(mapping = NULL, data = NULL, stat = "bin", 
    position = "stack", ...) 

mi rendo conto che nelle geom_histogram documenti si afferma:

geom_histogram è un alias per geom_bar più stat_bin

ma ad essere onesti, non sono Veramente sicuro di cosa significhi, dal momento che la mia comprensione di ggplot2 è che sia stat_bin che geom_bar sono strati (con un'enfasi leggermente diversa).

+0

Penso che questo non sia rappresentato in ggplot con precisione come ggplot (diamanti, aes (profondità)) + geom_histogram (aes (y = .. densità ..)) e ggplot (diamanti, aes (profondità)) + geom_bar (aes (y = .. density ..)) produce lo stesso grafico (che è un istogramma) – jamborta

+0

I grafici di densità non sono istogrammi I grafici di densità non sono percentuali I grafici di densità sono diagrammi di densità. http://stackoverflow.com/questions/17655648/how-can-i-plot-the-relative-proporzioni-of-two-groups-using-a-fill-aesthetic-in per ulteriori citazioni. – russellpierce

3

Il comportamento predefinito è lo stesso sia da geom_bar che da geom_histogram. Questo perché (e come menzionato da @csgillespie), c'è una stat_bin implicita quando chiami geom_histogarm (comprensibile), ed è anche la trasformazione statistica predefinita applicata a geom_bar (comportamento discutibile IMO). Ecco perché è necessario specificare stat='identity' quando si desidera che i dati vengano tracciati come sono.

Il stat='bin' o stat_bin() è una trasformazione statistica che ggplot fa per voi. Esso fornisce in output le variabili circondate con due punti (il ..count.. e ..density... Se non si specifica stat='bin' non sarà possibile ottenere quelle variabili.