2013-01-03 113 views
14

ggplot中geom_bar和geom_histogram之間有什麼區別(如果有的話)?他們似乎產生相同的情節並採取相同的參數。ggplot geom_bar vs geom_histogram

+4

如果你看看?geom_histogram你會發現,「geom_histogram是一個別名對於geom_bar plus stat_bin「 –

+0

作爲一名數學家:-),直方圖與條形圖不同,即使這些名稱傾向於混合在一起。從維基百科引用,「直方圖由表格頻率組成,顯示爲相鄰的矩形,豎立在離散的間隔(bin)上,其面積等於間隔中觀察的頻率。矩形的高度也等於頻率間隔的密度,即頻率除以區間的寬度,直方圖的總面積等於數據的數量。「一個條形圖沒有這樣的區域限制 –

+0

謝謝,雖然看起來geom_bar()也有一個stat_bin()應用於它,因爲你可以訪問stat_bin變量,如..count ..和..density .. – jamborta

回答

11
  • 條形圖提供分類數據的可視化表示。例子:
    • 的人有紅色,黑色和棕色的頭髮
    • 看那geom_barhelp file數。這些例子都是重要的。
    • 維基百科page
  • 直方圖用來繪製的interval(通常爲數值)數據密度。例如,年齡和身高
  • geom_histhelp file
    • 分佈。這些例子是電影評級的分佈。

GGPLOT2

後多一點研究,我覺得在GGPLOT2有geom_bargeom_histogram之間沒有什麼區別。從文檔:

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

我認識到,在geom_histogram文檔它指出:

geom_histogram是geom_bar加上stat_bin別名

但說實話,我不真的確定這意味着什麼,因爲我對ggplot2的理解是,stat_bin和geom_bar都是圖層(重點略有不同)。

+0

ggplot(diamonds,aes(depth))+ geom_histogram(aes(y = .. density ..))和 ggplot(diamonds,aes(depth))+ geom_bar(aes)我想這不是在ggplot中準確地表示爲 ggplot (y = .. density ..))結果在同一個圖中(這是一個直方圖) – jamborta

+0

密度圖不是直方圖密度圖不是百分比密度圖是密度圖。/17655648 /怎麼可以 - 我 - 陰謀 - 相對比例 - 兩組 - 使用填充 - 審美 - 用於更多引用。 – russellpierce

3

geom_bar和geom_histogram的默認行爲是相同的。這是因爲(和@csgillespie提到的一樣),當你調用geom_histogarm(可以理解)時,存在一個隱含的stat_bin,它也是應用於geom_bar(可爭論的行爲IMO)的默認統計轉換。這就是爲什麼你需要指定stat='identity'當你想繪製數據的原因。

stat='bin'stat_bin()是ggplot爲您所做的統計轉換。它爲您提供的輸出與兩個點(在..count....density..包圍的變量。如果你不指定stat='bin',你不會得到這些變量。