R 資料探索與基本繪圖

長條圖(Bar Plots)

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

base 系統

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

gear.table <- table(mtcars$gear)
gear.table
 3  4  5 
15 12  5
barplot(gear.table)
r-data-exploration-and-visualization-barplot-1

長條圖

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

barplot(gear.table, names.arg = c("Three", "Four", "Five"))
r-data-exploration-and-visualization-barplot-2

長條圖

有時候在資料比較多或是每個 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)
r-data-exploration-and-visualization-barplot-3

長條圖

這裡的 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)
r-data-exploration-and-visualization-barplot-4

長條圖

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

barplot(gear.table2, beside = TRUE)
r-data-exploration-and-visualization-barplot-5

長條圖

lattice 系統

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

barchart(gear.table)
r-data-exploration-and-visualization-barplot-6

長條圖

names(gear.table) <- c("Three", "Four", "Five")
barchart(gear.table)
r-data-exploration-and-visualization-barplot-7

長條圖

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

barchart(gear.table2)
r-data-exploration-and-visualization-barplot-8

長條圖

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

barchart(t(gear.table2))
r-data-exploration-and-visualization-barplot-9

長條圖

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

barchart(t(gear.table2), stack = FALSE)
r-data-exploration-and-visualization-barplot-10

長條圖

ggplot2 系統

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

ggplot(mtcars, aes(factor(gear))) +
  geom_bar()
r-data-exploration-and-visualization-barplot-11

長條圖

繪製水平的長條圖:

ggplot(mtcars, aes(factor(gear))) +
  geom_bar() +
  coord_flip()
r-data-exploration-and-visualization-barplot-12

長條圖

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

ggplot(mtcars, aes(factor(gear), fill = factor(vs))) +
  geom_bar() +
  coord_flip()
r-data-exploration-and-visualization-barplot-13

長條圖

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

ggplot(mtcars, aes(factor(gear), fill = factor(vs))) +
  geom_bar(position="dodge") +
  coord_flip()
r-data-exploration-and-visualization-barplot-14

長條圖

R

2 留言

  1. 123

    這一頁有錯字喔~
    第一段base 與 grid 系統:
    雖然 grid 的彈性很大,但是對於資料量比較大的”圖形”

Leave a Reply