ZL1023

V1

2023/01/24阅读：26主题：全栈蓝

# R语言：饼图系列-连续变量

## 一、前言

1. 展示不同类别变量之间的占比情况。

## 二、R包

``# load "tidyverse" packagelibrary(tidyverse)# load "dlookr" packagelibrary(dlookr)# load "scatterpie" packagelibrary(scatterpie)# load "gWQS" packagelibrary(gWQS) ``

## 三、演示数据

### 3.1 原始数据

gWQS包中有一个内置数据集，内置数据集的名称叫wqs_datawqs_data数据集有34种多环芳烃暴露数据、25种邻苯二甲酸酯暴露数据和其他类型数据。

``# PCBs namePCBs_name <- c("LBX074LA","LBX099LA","LBX105LA","LBX118LA","LBX138LA")# get the first 5 PCBs exposure data and sexPCBs <- wqs_data[c(PCBs_name,"sex")]# get PCBs' absolute valuePCBs[PCBs_name] <- abs(PCBs[PCBs_name])# view PCBs datahead(PCBs)``

### 3.2 计算统计量和标签

``PCBs_pie = PCBs[1:5] %>% # calculate describtive statistics describe(statistics=c("mean","sd"))# create pie labelPCBs_pie\$label = paste0(PCBs_pie\$described_variables,                        " (",                        round(PCBs_pie\$mean/sum(PCBs_pie\$mean)*100,2),                        "%)")# view datahead(PCBs_pie)``

### 3.3 复合饼图模拟数据

``PCBs_composite_pie = PCBs %>%  # group by sex  group_by(sex) %>%  # calculate describtive statistics  describe(statistics=c("mean","sd")) %>%   # select colume  select(c("described_variables","sex","mean")) %>%   # long to wider  pivot_wider(names_from=described_variables,values_from=mean)# create xPCBs_composite_pie\$x = c(50,100)# create yPCBs_composite_pie\$y = c(50,100)# create ridiusPCBs_composite_pie\$ridius = c(5,10)``

## 四、R语言实现

### 4.1 饼图

``# draw plotggplot()+  # geometric layer  geom_bar(data=PCBs_pie,mapping=aes(x="",y=mean,fill=label),           color="black",           stat="identity")+  # coordinate adjustment  coord_polar(theta="y")+  # theme adjustment  theme_void()``

### 4.2 圆环图

``# draw plotggplot()+  # geometric layer  geom_bar(data=PCBs_pie,mapping=aes(x="",y=mean,fill=label),           color="black",           stat="identity")+  # coordinate adjustment  scale_x_discrete(expand=expansion(mult=c(1,0)))+  coord_polar(theta="y")+  # theme adjustment  theme_void()``

### 4.3 复合饼图

``# draw plotggplot()+  # geometric layer  geom_scatterpie(data=PCBs_composite_pie,mapping=aes(x,y),                  cols=PCBs_name)+  # coordinate adjustment  coord_equal()+  # theme adjustment  theme_light()+ theme(axis.text=element_text(color="black"))``

``# draw plotggplot()+  # geometric layer  geom_scatterpie(data=PCBs_composite_pie,mapping=aes(x=x,y=y,r=ridius),                  cols=PCBs_name)+  # coordinate adjustment  coord_equal()+  # legend adjustment  geom_scatterpie_legend(PCBs_composite_pie\$ridius,x=100,y=50,n=2)+  # theme adjustment  theme_light()+ theme(axis.text=element_text(color="black"))``

## 五、结果分析

NHANES数据库中多环芳烃的编码与对应名称。

LBX074LA PCB74
LBX099LA PCB99
LBX105LA PCB105
LBX118LA PCB118
LBX138LA PCB138
1. PCB74是人体尿液中含量最高的PCBs，其次是PCB138、PCB105和PCB99，PCB118在人体尿液中的含量最低。

V1