條形圖雖然簡單,但很有意思,因?yàn)樗梢越沂境鰣D形中的一些微妙信息。我們看一下用 geom_bar() 函數(shù)就可以繪制的基本條形圖。下面的條形圖顯示
了 diamonds 數(shù)據(jù)集中按照 cut 變量分組的各種鉆石的總數(shù)量。 diamonds 數(shù)據(jù)集是 ggplot2
的內(nèi)置數(shù)據(jù)集,包含大約 54 000 顆鉆石的信息,每顆鉆石具有 price、 carat、 color、
clarity 和 cut 變量。條形圖顯示,高質(zhì)量切割鉆石的數(shù)量要比低質(zhì)量切割鉆石的數(shù)量多:
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut))
條形圖 x 軸顯示的是 cut,這是 diamonds 數(shù)據(jù)集中的一個變量。 y 軸顯示的是 count,但
count 不是 diamonds 中的變量!那么 count 來自哪里呢?很多圖形繪制的是數(shù)據(jù)集的原始
數(shù)據(jù),比如散點(diǎn)圖。另外一些圖形則可以繪制那些計算出的新數(shù)據(jù),比如條形圖。
? 條形圖、直方圖和頻率多邊形圖可以對數(shù)據(jù)進(jìn)行分箱,然后繪制出分箱數(shù)量和落在每個
分箱的數(shù)據(jù)點(diǎn)的數(shù)量。
? 平滑曲線會為數(shù)據(jù)擬合一個模型,然后繪制出模型預(yù)測值。
? 箱線圖可以計算出數(shù)據(jù)分布的多種摘要統(tǒng)計量,并顯示一個特殊形式的箱體。
繪圖時用來計算新數(shù)據(jù)的算法稱為 stat(statistical transformation, 統(tǒng)計變換)。下圖描述了
geom_bar() 函數(shù)的統(tǒng)計變換過程。
(3) geom_bar() 使用變換后的數(shù)
據(jù)進(jìn)行繪圖, cut映射到x軸,
count映射到y軸
(1) geom_bar()從
diamonds數(shù)據(jù)
集開始處理
(2) geom_bar() 使用
“數(shù)量”統(tǒng)計變換
對數(shù)據(jù)進(jìn)行轉(zhuǎn)換,
返回切割值和計
數(shù)的數(shù)據(jù)集
通過查看 stat 參數(shù)的默認(rèn)值,你可以知道幾何對象函數(shù)使用了哪種統(tǒng)計變換。例
如, ?geom_bar 顯示出 stat 的默認(rèn)值是 count,這說明 geom_bar() 使用 stat_count() 函數(shù)
進(jìn)行統(tǒng)計變換。 stat_count() 在文檔中與 geom_bar() 位于同一頁,如果繼續(xù)向下看,你可
以發(fā)現(xiàn)名為“Computed variables”的一節(jié),它告訴我們 stat_count() 會計算出兩個新變
量: count 和 prop。
通常來說,幾何對象函數(shù)和統(tǒng)計變換函數(shù)可以互換使用。例如,你可以使用 stat_count()
替換 geom_bar() 來重新生成前面那張圖:
ggplot(data = diamonds) +
stat_count(mapping = aes(x = cut))
可以這樣做的原因是,每個幾何對象函數(shù)都有一個默認(rèn)統(tǒng)計變換,每個統(tǒng)計變換函數(shù)都有
一個默認(rèn)幾何對象。一般情況下,這意味著你在使用幾何對象函數(shù)時不用擔(dān)心底層的統(tǒng)計
變換。想要顯式使用某種統(tǒng)計變換的 3 個原因如下。
? 你可能想要覆蓋默認(rèn)的統(tǒng)計變換。在以下代碼中,我們將 geom_bar() 函數(shù)的統(tǒng)計變換
從計數(shù)(默認(rèn)值)修改為標(biāo)識。這樣我們就可以將條形的高度映射為 y 軸變量的初始值。
遺憾的是,當(dāng)隨意說起條形圖時,人們指的可能就是這種條形圖,其中條形高度已經(jīng)存
可以使用 stat_summary() 函數(shù)將人們的
注意力吸引到你計算出的那些摘要統(tǒng)計量上。 stat_summary() 函數(shù)為 x 的每個唯一值計
算 y 值的摘要統(tǒng)計:
ggplot(data = diamonds) +
stat_summary(
mapping = aes(x = cut, y = depth),
在于數(shù)據(jù)中,而不是像前一個圖一樣,條形








暫無數(shù)據(jù)