數(shù)據(jù)
使用隨機(jī)編寫(xiě)數(shù)據(jù),包含兩列,一列為group,一列為value:
rm(list=ls())
df<-data.frame(
group=c('A', 'B', 'C', 'D', 'E'),
value=c(55,75,20,60,100))

image.png
使用Pie函數(shù)繪制餅圖
col<-rainbow(5)
pie(df$value, #扇形數(shù)值大小
labels = df$group, #各扇形面積標(biāo)簽
radius = 0.9,#餅圖半徑
main = 'Pie',#標(biāo)題
clockwise = FALSE, #餅圖各個(gè)切片是否按順時(shí)針做出分割
col = col)#自定義顏色

image.png
添加圖例:
legend("topright", df$group, cex = 0.8,fill = col)#圖例

image.png
也可以替換扇形中的填充形式,使用線條進(jìn)行填充:
pie(df$value, #扇形數(shù)值大小
labels = df$group, #各扇形面積標(biāo)簽
radius = 0.9,#餅圖半徑
main = 'Pie',#標(biāo)題
clockwise = FALSE, #餅圖各個(gè)切片是否按順時(shí)針做出分割
density = 20, # 設(shè)置陰影線密度
angle = 45,#設(shè)置陰影線角度
col = rainbow(5))#自定義顏色

image.png
ggoplot2包繪制餅圖
???? ggplot2包中沒(méi)有專(zhuān)門(mén)的繪制餅圖的函數(shù),所以得先繪制條形圖,再轉(zhuǎn)換成極坐標(biāo)形式以實(shí)現(xiàn)餅圖的繪制:
library(ggplot2)
ggplot(df, aes(x="", y = value, fill = group))+#數(shù)據(jù)
geom_bar(width = 1, stat = "identity",color="white")+#繪制柱狀圖
coord_polar('y')+#變?yōu)闃O坐標(biāo)
theme_void()+#主題
scale_fill_manual(values=rainbow(5))+#自定義顏色
geom_text(aes(y = sum(value)-cumsum(value)+value/2,
label = scales::percent(value/sum(value))), size=4.5)#標(biāo)簽

image.png
ggstatsplot包繪制餅圖
???? 基于ggstatsplot包中的ggpiestats()函數(shù)進(jìn)行繪制,但是這個(gè)包使用的數(shù)據(jù)是不需要統(tǒng)計(jì)頻數(shù)的,直接使用原始數(shù)據(jù)繪圖即可:
#以數(shù)據(jù)集mtcars為例
df1<-mtcars

image.png
library(ggstatsplot)
ggpiestats(df1, 'vs', #數(shù)據(jù)
direction = 1, #方向,通過(guò)1和-1調(diào)整
title = "Pie",#標(biāo)題
factor.levels = df1$vs,#標(biāo)簽
slice.label = 'percentage',#標(biāo)簽類(lèi)型,percentage/counts/both
perc.k = 2,#百分?jǐn)?shù)小數(shù)位數(shù)
results.subtitle = T) #標(biāo)題是否顯示統(tǒng)計(jì)結(jié)果

image.png
ggpubr包繪制餅圖
library(ggpubr)
ggpie(df, "value", #數(shù)據(jù)
label = "group",#標(biāo)簽
lab.pos = 'in',#標(biāo)簽位置
lab.font = c(5, 'white'),#標(biāo)簽大小及顏色
fill = "group", #填充
color = "grey",#間隔顏色
palette = rainbow(5))#填充顏色

image.png
pie3D()函數(shù)繪制3D餅圖
library(plotrix)
col<-rainbow(5)
pie3D(df$value, #數(shù)據(jù)
labels = df$group, #標(biāo)簽
theta = pi/5,
labelcex=1.2, #標(biāo)簽大小
main = "3D pie",#標(biāo)題
explode = 0.1, #各扇形間隔
height = 0.08,#各扇形高度
radius = 1,#半徑,0~1
col = rainbow(5))#顏色
legend("topright", df$group, cex = 0.8,fill = col)#圖例

image.png
fan.plot()函數(shù)繪制扇形
library(plotrix)
col<-rainbow(5)
fan.plot(df$value,#繪圖數(shù)據(jù)
radius=1,#半徑
col=col,#填充顏色
labels=df$group,#標(biāo)簽
label.radius=1.1,#標(biāo)簽距扇形的距離
align="left",#扇形對(duì)齊的位置
main="Fan plot")#標(biāo)題
legend("right", df$group, cex = 0.9,fill = col)#圖例

image.png