#讀入"strays.csv"
x <- read.csv("strays.csv", stringsAsFactors = TRUE)
table(x$type)
## 
##   狗   貓 
## 1048   34
#一、各縣市流浪動物數量長條圖
table(x$county)
## 
## 南投縣 嘉義市 嘉義縣 基隆市 宜蘭縣 屏東縣 彰化縣 新北市 新竹市 新竹縣 桃園市 
##    188      2      1     15      3     40      4    220     63      6     74 
## 澎湖縣 臺中市 臺北市 臺南市 臺東縣 花蓮縣 苗栗縣 金門縣 雲林縣 高雄市 
##     15     11     84     97      3      2      3     49     30    172
c <- sort(table(x$county), decreasing = T)
c
## 
## 新北市 南投縣 高雄市 臺南市 臺北市 桃園市 新竹市 金門縣 屏東縣 雲林縣 基隆市 
##    220    188    172     97     84     74     63     49     40     30     15 
## 澎湖縣 臺中市 新竹縣 彰化縣 宜蘭縣 臺東縣 苗栗縣 嘉義市 花蓮縣 嘉義縣 
##     15     11      6      4      3      3      3      2      2      1
barplot(c, 
        col = c(1:22),
        xlab = "county",
        main = "各縣市流浪動物數量",
        sub = "By 劉大華")

#二、依據strays.csv畫分組長條圖

#犬與貓的體型分析(初階)
#次數分配表
t <- table(x$type,x$size)
t
##     
##      BIG MEDIUM SMALL
##   狗 177    691   180
##   貓   4     22     8
#百分比次數分配表
p.t <- prop.table(t,1)
p.t
##     
##            BIG    MEDIUM     SMALL
##   狗 0.1688931 0.6593511 0.1717557
##   貓 0.1176471 0.6470588 0.2352941
#將次數變成百分比(乘以100)
p.t <- p.t*100
p.t
##     
##           BIG   MEDIUM    SMALL
##   狗 16.88931 65.93511 17.17557
##   貓 11.76471 64.70588 23.52941
#四捨五入至小數2位
p.t <- round(p.t,2)
p.t
##     
##        BIG MEDIUM SMALL
##   狗 16.89  65.94 17.18
##   貓 11.76  64.71 23.53
#畫分組長條圖
barplot(p.t)

barplot(p.t, beside = TRUE)

#加上圖例與上色
label <- rownames(p.t)
barplot(p.t, 
        beside = TRUE, 
        legend.text = label, 
        col = c(3,6),
        xlab = "size",
        main = "犬與貓的體型分析(初階)",
        sub = "By 劉大華")

#犬與貓的體型分析(進階)
#次數分配表
t1 <- table(x$size,x$type)
t1
##         
##           狗  貓
##   BIG    177   4
##   MEDIUM 691  22
##   SMALL  180   8
#百分比次數分配表
p.t1 <- prop.table(t1,2)
p.t1
##         
##                 狗        貓
##   BIG    0.1688931 0.1176471
##   MEDIUM 0.6593511 0.6470588
##   SMALL  0.1717557 0.2352941
#將次數變成百分比(乘以100)
p.t1 <- p.t1*100
p.t1
##         
##                狗       貓
##   BIG    16.88931 11.76471
##   MEDIUM 65.93511 64.70588
##   SMALL  17.17557 23.52941
#四捨五入至小數2位
p.t1 <- round(p.t1,2)
p.t1
##         
##             狗    貓
##   BIG    16.89 11.76
##   MEDIUM 65.94 64.71
##   SMALL  17.18 23.53
#畫分組長條圖
barplot(p.t1)

barplot(p.t1, beside = TRUE)

#加上圖例與上色
label <- rownames(p.t1)
barplot(p.t1, 
        beside = TRUE, 
        legend.text = label, 
        col = c(2,13,27),
        xlab = "type",
        main = "犬與貓的體型分析(進階)",
        sub = "By 劉大華")

#三、依據strays.csv畫分組圓餅圖
p.t
##     
##        BIG MEDIUM SMALL
##   狗 16.89  65.94 17.18
##   貓 11.76  64.71 23.53
f <- p.t[1,] # 犬資料
m <- p.t[2,] # 貓資料
f
##    BIG MEDIUM  SMALL 
##  16.89  65.94  17.18
m
##    BIG MEDIUM  SMALL 
##  11.76  64.71  23.53
# par()是圖形控制函數,mfrow = c(1,2)表示建立一個1x2的空間,用來呈現後續的圖
par(mfrow = c(1,2))
pie(f, main = "dog")
pie(m, main = "cat" )

dev.off()  #離開par()
## null device 
##           1
#畫圓餅圖並加上資料標籤
par(mfrow = c(1,2))
pie_category <- colnames(p.t)
f_label <- paste(pie_category, f,"%", sep = "")
f_label
## [1] "BIG16.89%"    "MEDIUM65.94%" "SMALL17.18%"
m_label <- paste(pie_category, m,"%", sep = "")
m_label
## [1] "BIG11.76%"    "MEDIUM64.71%" "SMALL23.53%"
par(mfrow = c(1,2))# c(1,2),表示建立一個1x2的空間,用來呈現後續的圖
pie(f, labels = f_label , main = "犬")
## Warning in title(main = main, ...): conversion failure on '犬' in 'mbcsToSbcs':
## dot substituted for <e7>
## Warning in title(main = main, ...): conversion failure on '犬' in 'mbcsToSbcs':
## dot substituted for <8a>
## Warning in title(main = main, ...): conversion failure on '犬' in 'mbcsToSbcs':
## dot substituted for <ac>
pie(m, labels = m_label , main = "貓" )
## Warning in title(main = main, ...): conversion failure on '貓' in 'mbcsToSbcs':
## dot substituted for <e8>
## Warning in title(main = main, ...): conversion failure on '貓' in 'mbcsToSbcs':
## dot substituted for <b2>
## Warning in title(main = main, ...): conversion failure on '貓' in 'mbcsToSbcs':
## dot substituted for <93>
dev.off()  #離開par()
## null device 
##           1