R 語言提供來大量的庫來實(shí)現(xiàn)繪圖功能。
餅圖,或稱餅狀圖,是一個(gè)劃分為幾個(gè)扇形的圓形統(tǒng)計(jì)圖表,用于描述量、頻率或百分比之間的相對關(guān)系。
R 語言使用 pie() 函數(shù)來實(shí)現(xiàn)餅圖,語法格式如下:
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: 數(shù)值向量,表示每個(gè)扇形的面積。
labels: 字符型向量,表示各扇形面積標(biāo)簽。
edges: 這個(gè)參數(shù)用處不大,指的是多邊形的邊數(shù)(圓的輪廓類似很多邊的多邊形)。
radius: 餅圖的半徑。
main: 餅圖的標(biāo)題。
clockwise: 是一個(gè)邏輯值,用來指示餅圖各個(gè)切片是否按順時(shí)針做出分割。
angle: 設(shè)置底紋的斜率。
density: 底紋的密度。默認(rèn)值為 NULL。
col: 是表示每個(gè)扇形的顏色,相當(dāng)于調(diào)色板。
繪制餅狀圖要做這些準(zhǔn)備:反映數(shù)量的向量、各部分的標(biāo)簽、各部分的顏色(可選)。
接下來我們繪制一個(gè)簡單的餅圖:
# 數(shù)據(jù)準(zhǔn)備 info = c(1, 2, 4, 8) # 命名 names = c("Google", "Nhooo", "Taobao", "Weibo") # 涂色(可選) cols = c("#ED1C24","#22B14C","#FFC90E","#3f48CC") # 繪圖 pie(info, labels=names, col=cols)
執(zhí)行繪圖程序,會(huì)在當(dāng)前目錄下生存一個(gè) PDF 文件(Rplots.pdf),打開文件可以看到圖形效果如下:
我們也可以使用 png()、jpeg()、bmp() 函數(shù)設(shè)置輸出的文件格式為圖片:
# 數(shù)據(jù)準(zhǔn)備 info = c(1, 2, 4, 8) # 命名 names = c("Google", "Nhooo", "Taobao", "Weibo") # 涂色(可選) cols = c("#ED1C24","#22B14C","#FFC90E","#3f48CC") # 設(shè)置輸出圖片 png(file='nhooo-pie.png', height=300, width=300) # 繪圖 pie(info, labels=names, col=cols)
接下來我們給餅圖設(shè)置標(biāo)題,中文字體需要設(shè)置字體參數(shù) family='GB1',也可以自己設(shè)置字體庫,詳細(xì)參考:R 繪圖 - 中文支持。
# 數(shù)據(jù)準(zhǔn)備 info = c(1, 2, 4, 8) # 命名 names = c("Google", "Nhooo", "Taobao", "Weibo") # 涂色(可選) cols = c("#ED1C24","#22B14C","#FFC90E","#3f48CC") # 計(jì)算百分比 piepercent = paste(round(100*info/sum(info)), "%") # 繪圖 pie(info, labels=piepercent, main = "網(wǎng)站分析", col=cols, family='GB1') # 添加顏色樣本標(biāo)注 legend("topright", names, cex=0.8, fill=cols)
如果要繪制 3D 的餅圖,可以使用 plotrix 庫的 pie3D() 函數(shù),使用前我們需要先安裝:
install.packages("plotrix", repos = "https://mirrors.ustc.edu.cn/CRAN/")
# 載入 plotrix library(plotrix) # 數(shù)據(jù)準(zhǔn)備 info = c(1, 2, 4, 8) # 命名 names = c("Google", "Nhooo", "Taobao", "Weibo") # 涂色(可選) cols = c("#ED1C24","#22B14C","#FFC90E","#3f48CC") # 設(shè)置文件名,輸出為 png png(file = "3d_pie_chart.png") # 繪制 3D 圖,family 要設(shè)置你系統(tǒng)支持的中文字體庫 pie3D(info,labels = names,explode = 0.1, main = "3D 圖",family = "STHeitiTC-Light")
生成圖片如下所示: