分類: R

R 資料探索與基本繪圖

長條圖(Bar Plots)

長條圖通常用來呈現各種不同資料的數量。

base 系統

base 系統中可以使用 barplot 來繪製長條圖,其第一個傳入的參數是一個向量,指定每一條 bar 的長度,如果該向量是一個具名向量,則每一個元素的名稱就會被用來當作每個 bar 的名稱:

gear.table <- table(mtcars$gear)
gear.table
 3  4  5 
15 12  5
barplot(gear.table)

長條圖

若要改變每個 bar 的名稱,可以使用 names.arg 參數來指定:

barplot(gear.table, names.arg = c("Three", "Four", "Five"))

長條圖

有時候在資料比較多或是每個 bar 的名稱比較長的時候,將長條圖以水平的方式來畫會比較適合,barplot 本身有一個 horiz 參數可以調整繪圖方向,不過他只會更改圖形的方向,文字的方向需要另外使用 par 配合 las 來修改:

par(las = 1, mar = c(3, 5, 1, 1))
barplot(gear.table, names.arg = c("Three", "Four", "Five"),
  horiz = TRUE)

長條圖

這裡的 las 設定為 1 則代表座標軸上名稱以水平方式顯示,而 mar 則是用來調整圖形的下方、左方、上方與右方的邊界大小,關於這些參數的詳細說明,請參考 par 的線上手冊。

二維的列連表也可以直接使用 barplot 畫出兩種資料合併的長條圖:

gear.table2 <- table(mtcars$vs, mtcars$gear)
gear.table2
     3  4  5
  0 12  2  4
  1  3 10  1
barplot(gear.table2)

長條圖

將兩種資料拆開來畫成兩個並列的長條圖:

barplot(gear.table2, beside = TRUE)

長條圖

lattice 系統

lattice 系統中可以用 barchart 來繪製長條圖:

barchart(gear.table)

長條圖

names(gear.table) <- c("Three", "Four", "Five")
barchart(gear.table)

長條圖

以二維的列連表繪製長條圖:

barchart(gear.table2)

長條圖

barchart 預設的資料方向跟 barplot 不同,我們可以使用 t 將資料轉向:

barchart(t(gear.table2))

長條圖

將兩種資料拆開來畫成兩個並列的長條圖:

barchart(t(gear.table2), stack = FALSE)

長條圖

ggplot2 系統

ggplot2 系統中可以使用 geom_bar 來繪製長條圖:

ggplot(mtcars, aes(factor(gear))) +
  geom_bar()

長條圖

繪製水平的長條圖:

ggplot(mtcars, aes(factor(gear))) +
  geom_bar() +
  coord_flip()

長條圖

使用 aesfill 參數可以讓不同的資料以不同的顏色表示:

ggplot(mtcars, aes(factor(gear), fill = factor(vs))) +
  geom_bar() +
  coord_flip()

長條圖

geom_barposition 參數設定為 dodge 可以讓長條圖並列顯示:

ggplot(mtcars, aes(factor(gear), fill = factor(vs))) +
  geom_bar(position="dodge") +
  coord_flip()

長條圖

Page: 1 2 3 4 5 6 7

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang

Recent Posts

[開箱] Apple iPhone 12 mini 手機、犀牛盾防摔殼、磁吸充電線

本篇是我在中華電信換約買 Ap...

4 年 ago

[台南旅遊景點] 官田水雉生態教育園區

官田水雉生態教育園區是一處可以...

4 年 ago

[開箱] 樹莓派 Raspberry Pi 4 Model B 4GB RAM

本篇是第四代樹莓派 Raspb...

4 年 ago

[DIY] 單極馬達製作教學

本篇介紹如何自己製作單極馬達,...

4 年 ago

[美善品] 泡芙製作教學

本篇介紹如何使用美善品料理機,...

4 年 ago