R可視化——餅圖的繪制方法匯總

數(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
參考:見(jiàn)各函數(shù)幫助文檔
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容