#讀入"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