餅圖英文學名為Sector Graph, 又名Pie Graph。常用于統計學模塊。餅圖顯示一個數據系列中各項的大小與各項總和的比例。也就是說我們想直觀的看某一樣本值在所有樣本總值中所占的比例時,可以使用餅圖來表示。
在R語言中繪制餅圖的函數為pie,其使用格式如下:
pie(x, labels = names(x), edges = 200, radius = 0.8,
clockwise = FALSE, init.angle = if(clockwise) 90 else 0,
density = NULL, angle = 45, col = NULL, border = NULL,
lty = NULL, main = NULL, ...)
主要參數的含義如下:
x 一個非負的數值型向量。x中的值決定了餅圖中每個扇形的大小。
labels 用于給出每個扇區的標簽。
edges : 繪制餅圖時,餅圖的外輪廓是由多邊形近似表示的。理論上,edges的數值越大,餅圖看上去越圓。
radius : R中的餅圖繪制以radius為邊的正方形中,取值范圍為-1到1。取值-1時,默認0角度是從正左邊逆時針開始,否則是從正右邊逆時針開始。
clockwise : 邏輯值。指示繪制扇區時是逆時針方向排列(FALSE),還是順時針方向排列(TRUE)。默認為逆時針。
init.angle : 開始繪制扇區時的初始角度。默認情況下,逆時針時,第一個扇區的開始邊為0度(3點鐘方向),并向逆時針方向展開。如果clockwise取值為TRUE時,第1個扇區的開始邊為90度(12點鐘方向),并向順時針方向展開。
density : 陰影線的密度。如果設置該參數,且為正值,則餅圖以陰影線進行填充,如為負值,且未指定每個扇區的顏色時,則整體為黑色,不能體現出分區來,如是0值,則沒有填充色,也沒有陰影線。
angle : 陰影線的斜率。默認為45度。
col : 一個顏色向量,用于給出扇區的填充色或陰影線的顏色(當設置了density參數時,就是陰影線的顏色)。
border : 每個扇區的邊框顏色。
lty : 每個扇區的線型(0:無,1:實線;2:短劃線;3:點線;4:點劃線;5:長劃線;6:雙劃線;)
main : 繪圖的標題
下面舉例子說明此函數的具體使用方法:
某銷售部統計了該部門5名成員過去一周的時間的銷售額情況。
(1)簡單的餅圖
sales <- c(122.3,169,198,110,173)
names <- c("小剛","小麗","小花","小蘭","小美")
pie(sales,labels=names)
結果形式如下圖所示:
(2)指定顏色
sales <- c(122.3,169,198,110,173)
names <- c("小剛","小麗","小花","小蘭","小美")
pie(sales,labels=names,col=c("skyblue","lightgreen","red","blue","lightyellow"))
運行情況如下圖所示:
(3)添加圖例,以比例形式顯示標簽
sales <- c(122.3,169,198,110,173)
names <- c("小剛","小麗","小花","小蘭","小美")
per.sales <- paste(round(100 * sales / sum(sales),2),"%")
slice.col <- c("skyblue","lightgreen","purple","blue","yellow")
pie(sales,labels=per.sales,col= slice.col)
legend("topright",names,cex=0.85, fill=slice.col)
顯示結果如下圖所示:
(4)添加標題
sales <- c(122.3,169,198,110,173)
names <- c("小剛","小麗","小花","小蘭","小美")
per.sales <- paste(round(100 * sales / sum(sales),2),"%")
slice.col <- rainbow(10)
pie(sales,labels=per.sales,col= slice.col,main="X銷售部第N周銷售業績情況")
legend("topright",names,cex=0.85, fill=slice.col)
運行結果如下圖所示:
其它參數使用情況,在這里不再進行演示。有興趣的讀者,自己可以去嘗試。
新聞熱點
疑難解答