iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
AI & Data

30天成為資料分析師-手把手R語言與資料分析教學系列 第 17

[Day 17] R語言- ggplot2套件執行視覺化圖表(1)

  • 分享至 

  • xImage
  •  

上一篇介紹了多種常用的統計圖表,認識這些統計圖表後,接著要介紹如何使用R語言來做出那些圖表,讓我們往下看吧!
就從前面提到的圓餅圖直方圖長條圖折線圖散佈圖盒鬚圖,依序來介紹如何使用ggplot2套件來製作這些圖表

  • 圓餅圖:
    班上男生、女生的比例分布
# 載入套件
library(ggplot2)

# 資料
day17_1 <- data.frame(
                  group = c("Boy", "Girl"),
                  value = c(15, 25)
                )
                
day17_1
  group value
1   Boy    15
2  Girl    25                
# 制定堆疊的長條圖
barplot<- ggplot(day17_1, aes(x="", y=value, fill=group))+
  geom_bar(width = 1, stat = "identity")

# 將圖形轉為極座標
pie <- barplot + coord_polar("y", start=0)

# 主題設置
blank_theme <- theme_minimal()+
  theme(
    axis.title.x = element_blank(),
    axis.title.y = element_blank(),
    panel.border = element_blank(),
    panel.grid=element_blank(),
    axis.ticks = element_blank(),
    plot.title=element_text(size=14, face="bold")
  )
pie + scale_fill_manual(values=c("#8ECDDD", "#FFCC70")) + blank_theme +
  theme(axis.text.x=element_blank())
  • 圓餅圖結果示意:
    https://ithelp.ithome.com.tw/upload/images/20230917/20162612jOxYk2m2cl.png

  • 直方圖:
    統計各種運動(籃球、游泳、羽球),男生、女生喜歡的人數

# 資料
day17_2 <- data.frame(
  type = c("籃球", "游泳", "羽球", "籃球", "游泳", "羽球"),
  group = c("Boy", "Boy", "Boy", "Girl", "Girl", "Girl"),
  value = c(10, 3, 2, 5, 12, 8)
)

day17_2 
  type group value
1 籃球   Boy    10
2 游泳   Boy     3
3 羽球   Boy     2
4 籃球  Girl     5
5 游泳  Girl    12
6 羽球  Girl     8
p <- ggplot(data = day17_2, aes(x = type, y = value, fill = group)) +
  geom_bar(stat = "identity", position = position_dodge())
  
# 讓y軸顯示的切點為整數
p + scale_fill_manual(values=c("#8ECDDD", "#FFCC70"))+ 
  scale_y_continuous(breaks= pretty_breaks())+
  labs(x= "運動項目",y= "人數")
  • 直方圖結果示意:
    https://ithelp.ithome.com.tw/upload/images/20230917/20162612DQtdxpKTh4.png

  • 長條圖:
    班上的考試成績分布

# 資料(從60,68,...90中重複抽出40個數,來當學生的成績)
day17_3 <- data.frame(value=sample(seq(60,90,2),40, replace = TRUE))

day17_3
   value
1     74
2     60
3     90
4     84
5     78
6     86
7     62
   .
   .
   .
ggplot(day17_3, aes(x=value))+
    geom_histogram(fill="aquamarine4", binwidth=4,color="grey", alpha=0.9)+
    scale_y_continuous(breaks= pretty_breaks())+
    labs(x= "考試分數",y= "人數")
  • 長條圖結果示意:
    https://ithelp.ithome.com.tw/upload/images/20230917/20162612BZCIocUBQv.png

上一篇
[Day 16] 資料分析-常用的統計圖表(2)
下一篇
[Day 18] R語言- ggplot2與plotly套件執行視覺化圖表(2)
系列文
30天成為資料分析師-手把手R語言與資料分析教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言