使用ggplot2畫大餅圖 (Pie Chart using ggplot2)

套路55: 使用ggplot2畫大餅圖 (Pie Chart using ggplot2)

1. 使用時機: 拿到數據時對不同項目數據的比例進行分析了解。

2. 分析類型: 敘述性統計資料視覺化R繪圖。

3. 資料:
df <- data.frame(
  group = c("Baby", "Child", "Young", "Teenager", "Adult"),
  value = c(21, 62, 10, 53, 77)
  )   # 將資料建成data frame格式
df  # 顯示df內容
attach(df)  # 告知R要使用df
vt <- sum(df$value)   # 計算數值總和放入vt
vt  # 顯示vt內容
df$value2 <- df$value * 100 / vt  # 計算每個值的百分比放入新欄位標題value2
df  # 顯示df內容多了標題value2

4. 安裝繪圖程式套件ggplot2
library(ggplot2)  # 安裝完成後叫出ggplot2備用

5. 繪圖
第一步: 先製作條狀圖 (bar chart, bar graph)
bp <- ggplot(df, aes(x = "", y = value2, fill = group)) +
  geom_bar(width = 1, stat = "identity") 
# group data frame的類別資料標題名稱,在建立data frame時由使用者自訂
# value2 data frame的數值百分比資料標題,在新增資料時由使用者自訂
bp  # 顯示Barplot
結果:

第二步: 接著把條狀圖轉大餅圖 (pie chart)
pie <- bp + coord_polar("y", start = 0)
pie  # 顯示Pie Chart
結果:

第三步: 接著把條狀圖轉大餅圖 (pie chart)
pie2 <- pie + scale_fill_brewer(palette = "Blues") +
  geom_text(aes(label = paste0(round(value2), "%")), position = position_stack(vjust = 0.5))
# 使用藍色系漸層
# 加上區塊百分比
pie2  # 顯示Pie Chart
結果:

pie3 <- pie + scale_fill_brewer(palette = "Reds") +
  geom_text(aes(label = paste0(round(value2), "%")), position = position_stack(vjust = 0.5))
# 使用紅色系漸層
# 加上區塊百分比
pie3  # 顯示Pie Chart
結果:

# 漸層色表(Sequential Palettes)名稱:
# Blues, BuGn, BuPu, GnBu, Greens, Greys, Oranges, OrRd, PuBu,
# PuBuGn, PuRd, Purples, RdPu, Reds, YlGn, YlGnBu, YlOrBr, YlOrRd

pie4 <- pie + scale_fill_manual(values=c("#F6AE2D", "#DDDDDD", "#FF88C2", "#55DDE0", "#F26419"))
+ geom_text(aes(label = paste0(round(value2), "%")), position = position_stack(vjust = 0.5))
# 使用者自訂顏色
# 加上區塊百分比
pie4  # 顯示Pie Chart
結果:

# 顏色代號(color codes)列表:
# https://zh.wikipedia.org/wiki/%E9%A2%9C%E8%89%B2%E5%88%97%E8%A1%A8

來勁了嗎? 想知道更多?? 補充資料(連結): 關於R繪圖快速入門

留言

這個網誌中的熱門文章

統計不球人 目錄 (Table of Contents)

如何選擇統計方法 1

單因子多樣本中位數差異檢定 (Kruskal-Wallis test)