R语言可视化(六):饼图绘制

06.饼图绘制


清除当前环境中的变量

rm(list=ls())

设置工作目录

setwd("C:/Users/Dell/Desktop/R_Plots/06piechart/")

基础pie函数绘制饼图

data <- read.table("demo1_piechart.txt",header = T)
head(data)
##   group value
## 1     E    10
## 2     D    30
## 3     C    20
## 4     B    10
## 5     A    10

pie(data$value)
image.png
pie(data$value,
    labels = data$group, # 添加标签
    col = c("purple", "violetred1", "green3",
            "cornsilk", "cyan") # 设置颜色
)
image.png
pie(data$value,
    labels = data$group, 
    col = c("purple", "violetred1", "green3",
            "cornsilk", "cyan"),
    clockwise = T, # 逆时针排布
    init.angle = 45 # 设置第一个扇区的初始角度
    )
image.png
pie(data$value,
    labels = data$group, # 添加标签
    col = c("purple", "violetred1", "green3",
            "cornsilk", "cyan"), # 设置颜色
    density = 20, # 设置阴影线密度
    angle = 20 + 10 * 1:5 # 设置阴影线角度
)
image.png
per.labs <- paste0(data$group,": ",round(100 * data$value / sum(data$value),2),"%")
pie(data$value,
    labels = per.labs, # 添加标签
    col = c("purple", "violetred1", "green3",
            "cornsilk", "cyan"),
    main = "pie(*, clockwise = TRUE)"
)
# 添加图例
legend("topright",legend = data$group, cex=1.0,
       fill = c("purple", "violetred1", "green3", "cornsilk", "cyan")
       )
image.png
n <- 200
pie(rep(1, n), labels = "", col = rainbow(n), border = NA,
    main = "pie(*, labels=\"\", col=rainbow(n), border=NA,..)")
image.png

ggplot2包绘制饼图

library(ggplot2)
data <- read.table("demo1_piechart.txt",header = T)
# 计算百分比
data$percent <- paste0(round(100 * data$value / sum(data$value),2),"%")
head(data)
##   group value percent
## 1     E    10   12.5%
## 2     D    30   37.5%
## 3     C    20     25%
## 4     B    10   12.5%
## 5     A    10   12.5%

ggplot(data,aes(x="", y= value, fill = group)) + 
  geom_bar(stat = "identity",color="white") + theme_bw() +
  scale_fill_manual(values = c("purple", "violetred1", "green3", "cornsilk", "cyan")) +
  theme(axis.text.x = element_blank(),
        axis.ticks = element_blank(),
        panel.grid = element_blank()) +
  labs(x="", y="") + 
  geom_text(aes(y = value/2 + c(0, cumsum(value)[-length(value)]),
                label = paste0(group,": ", percent)), size=5) +
  coord_polar(theta = "y")
image.png

ggpubr包绘制饼图

library(ggpubr)
data <- read.table("demo1_piechart.txt",header = T)
# 添加百分比标签列
data$labs <- paste0(data$group,": ",round(100 * data$value / sum(data$value),2),"%")
head(data)
##   group value     labs
## 1     E    10 E: 12.5%
## 2     D    30 D: 37.5%
## 3     C    20   C: 25%
## 4     B    10 B: 12.5%
## 5     A    10 A: 12.5%

ggpie(data,x="value", label = "labs",
      lab.pos = "in", lab.font = "5",
      fill="group", color="white",
      palette = c("purple", "violetred1", "green3", "cornsilk", "cyan"))
image.png

pie3D函数绘制三维饼图

# 加载plotrix包
library(plotrix)
data <- read.table("demo1_piechart.txt",header = T)
# 添加百分比标签列
data$labs <- paste0(data$group,": ",round(100 * data$value / sum(data$value),2),"%")
head(data)
##   group value     labs
## 1     E    10 E: 12.5%
## 2     D    30 D: 37.5%
## 3     C    20   C: 25%
## 4     B    10 B: 12.5%
## 5     A    10 A: 12.5%

pie3D(data$value, labels = data$labs, 
      theta = pi/5, labelcex=1.2,
      explode = 0.1, main = "3D pie chart", 
      col = c("purple", "violetred1", "green3", "cornsilk", "cyan"))
# 添加图例
legend("topright",legend = rev(data$group), cex=1.0, inset = 0.01,
       fill = rev(c("purple", "violetred1", "green3", "cornsilk", "cyan"))
)
image.png
sessionInfo()
## R version 3.6.0 (2019-04-26)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 18363)
## 
## Matrix products: default
## 
## locale:
## [1] LC_COLLATE=Chinese (Simplified)_China.936 
## [2] LC_CTYPE=Chinese (Simplified)_China.936   
## [3] LC_MONETARY=Chinese (Simplified)_China.936
## [4] LC_NUMERIC=C                              
## [5] LC_TIME=Chinese (Simplified)_China.936    
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] plotrix_3.7-6 ggpubr_0.2.1  magrittr_1.5  ggplot2_3.2.0
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_1.0.1       knitr_1.23       tidyselect_0.2.5 munsell_0.5.0   
##  [5] colorspace_1.4-1 R6_2.4.0         rlang_0.4.0      stringr_1.4.0   
##  [9] dplyr_0.8.3      tools_3.6.0      grid_3.6.0       gtable_0.3.0    
## [13] xfun_0.8         withr_2.1.2      htmltools_0.3.6  yaml_2.2.0      
## [17] lazyeval_0.2.2   digest_0.6.20    assertthat_0.2.1 tibble_2.1.3    
## [21] ggsignif_0.5.0   crayon_1.3.4     purrr_0.3.2      glue_1.3.1      
## [25] evaluate_0.14    rmarkdown_1.13   labeling_0.3     stringi_1.4.3   
## [29] compiler_3.6.0   pillar_1.4.2     scales_1.0.0     pkgconfig_2.0.2
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350