在數據分析中,直方圖(Histogram)和條型圖(Bar chart)是常用於觀察數據樣態的工具。關於直方圖的用法,可參考<[R]直方圖(Histogram)的用法>文章。
關於條型圖的用法,各位一定不陌生,尤其是經過2020年的COVID-19疫情事件,為了統計和比較各區域的確診或死亡病例,各媒體常以條型圖呈現數據。在R語言中,藉由安裝包ggplot2亦可輕鬆繪製,範例程式如下。
a.首先,利用install.packages()安裝ggplot2,並用library()導入。
#install package
install.packages(ggplot2)
#library
library(ggplot2)
b.利用data.frame將數據整理成一個dataframe。
install.packages(ggplot2)
#library
library(ggplot2)
b.利用data.frame將數據整理成一個dataframe。
#data
data1<-c("a","b","c","d","e","f","g","h","i","j","k","l")
data2<-c(15,6,21,43,29,11,25,31,44,33,15,31)
combinedata<-data.frame(data1,data2)
#輸出結果
> combinedata
data1 data2
1 a 15
2 b 6
3 c 21
4 d 43
5 e 29
6 f 11
7 g 25
8 h 31
9 i 44
10 j 33
11 k 15
12 l 31
data1<-c("a","b","c","d","e","f","g","h","i","j","k","l")
data2<-c(15,6,21,43,29,11,25,31,44,33,15,31)
combinedata<-data.frame(data1,data2)
#輸出結果
> combinedata
data1 data2
1 a 15
2 b 6
3 c 21
4 d 43
5 e 29
6 f 11
7 g 25
8 h 31
9 i 44
10 j 33
11 k 15
12 l 31
c.先簡單用hist()來觀察一下數據。
#hist chart
hist(as.numeric(combinedata$data2),breaks = 5)
hist(as.numeric(combinedata$data2),breaks = 5)
d.利用geom_bar來繪製條型圖,但這個條型圖似乎有些混亂,若能進一步排序更好。
#bar chart
ggplot(combinedata,aes(data1,data2))+
geom_bar(stat ='identity',color='black',fill='blue' )+
coord_flip()+xlab("name")+ylab("value")
ggplot(combinedata,aes(data1,data2))+
geom_bar(stat ='identity',color='black',fill='blue' )+
coord_flip()+xlab("name")+ylab("value")
e.利用reorder()對數據做排序,排序的條型圖看起來清爽多了,數據也更有條理和便於觀察。
#bar chart(reorder)
ggplot(combinedata,aes(reorder(data1,as.numeric(data2)),data2))+
geom_bar(stat ='identity',color='black',fill='blue' )+
coord_flip()+xlab("name")+ylab("value")
f.來說說geom_bar中的stat函數,stat有兩種語法可供選擇,若是需要以"計數"作為繪製變量,可選擇stat="count",若是需要將變量(如範例中的data2)的"數值"作為繪製變量,可選擇stat="identity"。下列是用stat="count"來說明的範例。
#bar chart(count)
ggplot(combinedata,aes(data2))+
geom_bar(stat ='count',color='black',fill='blue',width = 2)+
coord_flip()+xlab("value")+ylab("count")
geom_bar(stat ='count',color='black',fill='blue',width = 2)+
coord_flip()+xlab("value")+ylab("count")
-----如果文章對您有幫助,打開微信掃一掃,請作者喝杯咖啡。-----
沒有留言:
張貼留言