#0415期中考
#讀入"strays.csv"
#一、各縣市流浪動物數量長條圖
#二、犬與貓的體型(或毛色)分析的長條圖
#三、犬與貓的體型(或毛色)分析的圓餅圖


install.packages("readr")#第一次使用需安裝
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.1'
## (as 'lib' is unspecified)
library(readr)
x <- read.csv("strays.csv", stringsAsFactors = TRUE)
summary(x)
##        id         type      gender      size        color        age     
##  Min.   : 26250   狗:1048   F:534   BIG   :181   咖啡色: 13   ADULT:886  
##  1st Qu.: 50182   貓:  34   M:548   MEDIUM:713   白色  : 26   CHILD:196  
##  Median :129335                     SMALL :188   花色  : 88              
##  Mean   :120020                                  虎斑色:104              
##  3rd Qu.:179406                                  黃色  :249              
##  Max.   :248935                                  黑色  :602              
##                                                                          
##      county   
##  新北市 :220  
##  南投縣 :188  
##  高雄市 :172  
##  臺南市 : 97  
##  臺北市 : 84  
##  桃園市 : 74  
##  (Other):247
#一、各縣市流浪動物數量長條圖

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
t <- table(x$type,x$county)
t
##     
##      南投縣 嘉義市 嘉義縣 基隆市 宜蘭縣 屏東縣 彰化縣 新北市 新竹市 新竹縣
##   狗    185      2      1     14      3     40      4    220     63      6
##   貓      3      0      0      1      0      0      0      0      0      0
##     
##      桃園市 澎湖縣 臺中市 臺北市 臺南市 臺東縣 花蓮縣 苗栗縣 金門縣 雲林縣
##   狗     71     15     10     71     92      3      2      3     49     23
##   貓      3      0      1     13      5      0      0      0      0      7
##     
##      高雄市
##   狗    171
##   貓      1
barplot(t)

barplot(t, beside = T )

rownames(t)
## [1] "狗" "貓"
label <- rownames(t)
label#文字向量
## [1] "狗" "貓"
barplot(t, 
        beside =T , 
        sub ="by 王逸倫", 
        legend.text = label , 
        col = c(30,225),)

#二、犬與貓的體型(或毛色)分析的長條圖

table(x$color)
## 
## 咖啡色   白色   花色 虎斑色   黃色   黑色 
##     13     26     88    104    249    602
t.c <- table(x$type,x$color)
t.c
##     
##      咖啡色 白色 花色 虎斑色 黃色 黑色
##   狗     13   26   75     93  246  595
##   貓      0    0   13     11    3    7
barplot(t.c)

barplot(t.c, beside = T )

rownames(t.c)
## [1] "狗" "貓"
label <- rownames(t)
label#文字向量
## [1] "狗" "貓"
barplot(t.c, 
        beside =T , 
        sub ="by 王逸倫",
        legend.text = label , 
        col = c(30,225),)

#三、犬與貓的體型(或毛色)分析的圓餅圖

prop.table(table(x$color))#算百分比
## 
##     咖啡色       白色       花色     虎斑色       黃色       黑色 
## 0.01201479 0.02402957 0.08133087 0.09611830 0.23012939 0.55637708
t.c <- table(x$color,x$type)
t.c<- prop.table(t.c,2)
t.c
##         
##                  狗         貓
##   咖啡色 0.01240458 0.00000000
##   白色   0.02480916 0.00000000
##   花色   0.07156489 0.38235294
##   虎斑色 0.08874046 0.32352941
##   黃色   0.23473282 0.08823529
##   黑色   0.56774809 0.20588235
t.c <- t.c*100
t.c
##         
##                 狗        貓
##   咖啡色  1.240458  0.000000
##   白色    2.480916  0.000000
##   花色    7.156489 38.235294
##   虎斑色  8.874046 32.352941
##   黃色   23.473282  8.823529
##   黑色   56.774809 20.588235
t.c<- round(t.c,2)
t.c
##         
##             狗    貓
##   咖啡色  1.24  0.00
##   白色    2.48  0.00
##   花色    7.16 38.24
##   虎斑色  8.87 32.35
##   黃色   23.47  8.82
##   黑色   56.77 20.59
f <- t.c[,1] # 女性資料
m <- t.c[,2] # 男性資料
f
## 咖啡色   白色   花色 虎斑色   黃色   黑色 
##   1.24   2.48   7.16   8.87  23.47  56.77
m
## 咖啡色   白色   花色 虎斑色   黃色   黑色 
##   0.00   0.00  38.24  32.35   8.82  20.59
pie(f, main = "狗勾")

pie(m, main = "喵咪")

#dev.off()  #離開par()

#畫圓餅圖並加上資料標籤
pie_category <- rownames(t.c)
pie_category
## [1] "咖啡色" "白色"   "花色"   "虎斑色" "黃色"   "黑色"
f_label <- paste(pie_category, f,"%", sep = "")
f_label
## [1] "咖啡色1.24%" "白色2.48%"   "花色7.16%"   "虎斑色8.87%" "黃色23.47%" 
## [6] "黑色56.77%"
m_label <- paste(pie_category, m,"%", sep = "")
m_label
## [1] "咖啡色0%"     "白色0%"       "花色38.24%"   "虎斑色32.35%" "黃色8.82%"   
## [6] "黑色20.59%"
par(mfrow = c(1,2))# c(1,2),表示建立一個1x2的空間,用來呈現後續的圖
pie(f, labels = f_label , main = "狗勾")
pie(m, labels = m_label, main = "喵咪" )

dev.off()  #離開par()
## null device 
##           1