ggpubr|让数据可视化更加优雅(上)

简介: ggpubr是由Alboukadel Kassambara创建的,基于ggplot2的可视化包。主要用于绘制符合出版要求的图形。

安装与加载


从CRAN安装:

install.packages("ggpubr")

或者从GitHub上安装最新版本:

# Install
if(!require(devtools)) install.packages("devtools")
devtools::install_github("kassambara/ggpubr")

加载包

library(ggplot2)
library(ggpubr)

分布图

# 构建数据集
set.seed(1234)
#set.seed()设定生成随机数的种子,种子是为了让结果具有重复性,重现结果。如果不设定种子,生成的随机数无法重现。
wdata = data.frame(
   sex = factor(rep(c("F", "M"), each=200)),
   weight = c(rnorm(200, 55), rnorm(200, 58)))
head(wdata, 4)
```
set.seed(1234)
#set.seed()设定生成随机数的种子,种子是为了让结果具有重复性,重现结果。如果不设定种子,生成的随机数无法重现。
wdata = data.frame(
   sex = factor(rep(c("F", "M"), each=200)),
   weight = c(rnorm(200, 55), rnorm(200, 58)))
head(wdata, 4)
> head(wdata, 4)
  sex   weight
1   F 53.79293
2   F 55.27743
3   F 56.08444
4   F 52.65430

密度分布图

ggdensityggdensity(wdata, x = "weight",
   add = "mean", rug = TRUE,
   color = "sex", fill = "sex",
   palette = c("#00AFBB", "#E7B800"))

image.png

#参数详解
Usage
ggdensity(
  data,
  x,
  y = "..density..",
  combine = FALSE,#对于多类型数据是否分面
  merge = FALSE,#对于多类型数据是否合并
  color = "black",#线条颜色
  fill = NA,#线条填充色
  palette = NULL,#自定义颜色画板
  size = NULL,#点、线大小
  linetype = "solid",#线条类型
  alpha = 0.5,#透明度
  title = NULL,#设置标题
  xlab = NULL,#设置x轴标题
  ylab = NULL,#设置y轴标题
  facet.by = NULL,#设置分组分面
  panel.labs = NULL,#设置分面各组的标题
  short.panel.labs = TRUE,
  add = c("none", "mean", "median"),#添加均值或中位数线
  add.params = list(linetype = "dashed"),#添加其他参数
  rug = FALSE,#是否添加边际线
  label = NULL,#设置列标签
  font.label = list(size = 11, color = "black"), #设置标签字体
  label.select = NULL,
  repel = FALSE,#是否避字体免重叠 
  label.rectangle = FALSE,#是否给标签添加方框
  ggtheme = theme_pubr(),#设置画图主题 
  ...
)

直方图

gghistogram(wdata, x = "weight",
   add = "mean", rug = TRUE,
   color = "sex", fill = "sex",
   palette = c("#00AFBB", "#E7B800"))

image.png

箱线图和小提琴图

#导入内置数据
data("ToothGrowth")
df <- ToothGrowth
head(df, 4)
> head(df, 4)
   len supp dose
1  4.2   VC  0.5
2 11.5   VC  0.5
3  7.3   VC  0.5
4  5.8   VC  0.5

箱线图

p <- ggboxplot(df,
               x = "dose", 
               y = "len",
               color = "dose", 
               palette =c("#00AFBB", "#E7B800", "#FC4E07"),
               add = "jitter",#添加散点 
               shape = "dose"#点的形状)
p

image.png

# 添加P值
 # 建立需要比较的分组
my_comparisons <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2") )
p + stat_compare_means(comparisons = my_comparisons)+ # 添加两两比较的p-value
  stat_compare_means(label.y = 50)                   # 添加多组间比较p-value
# 参数详解
stat_compare_means(
  mapping = NULL,
  data = NULL,
  method = NULL,#检验方法见下表
  paired = FALSE,#是否配对
  method.args = list(),#用于检验的附加参数,如method.args = list(alternative = "greater")
  ref.group = NULL,#指定对照组
  comparisons = NULL,#包含比较分组的列表
  hide.ns = FALSE,#是否隐藏无差异的标志ns
  label.sep = ", ",#分隔术语的字符串。默认为“,”,以分离相关系数和p值
  label = NULL,#标签
  label.x.npc = "left",#标签的x轴位置
  label.y.npc = "top",#标签的y轴位置
  #数字0~1,或者字符('right', 'left', 'center', 'centre', 'middle')
  label.x = NULL,
  label.y = NULL,#指定一个数值,表示显示标签的绝对坐标位置
  vjust = 0,#向上或向下移动文本
  tip.length = 0.03,
  bracket.size = 0.3,
  step.increase = 0,
  symnum.args = list(),#默认symnum.args <- list(cutpoints = c(0, 0.0001, 0.001, 0.01, 0.05, 1), symbols = c("****", "***", "**", "*", "ns")).可以自己修改
  geom = "text",
  position = "identity",
  na.rm = FALSE,#如果为FALSE(默认值),则通过警告删除缺失的值。如果为真,则静默删除缺失的值。
  show.legend = NA,#是否包含图例
  inherit.aes = TRUE,
  ...
)

常用的统计学方法:image.png


image.png

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
编译器 C语言 C++
【C语言】realloc()函数详解(动态内存开辟函数)
【C语言】realloc()函数详解(动态内存开辟函数)
339 0
|
存储 算法 计算机视觉
FPGA上实现低通滤波器
FPGA上实现低通滤波器
380 0
|
6月前
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法
Debian 11更新Node.js主要就是这三种方式,无论你是初涉其中的新手还是找寻挑战的专家,总有一种方式能满足你的需求。现在,你已经是这个
615 80
|
JSON 数据格式
Redisson官方文档 - 4. 数据序列化
Redisson的对象编码类是用于将对象进行序列化和反序列化,以实现对该对象在Redis里的读取和存储。Redisson提供了多种的对象编码供大家选择。
10897 0
|
JavaScript 索引
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
1006 0
AC/DC电源模块的工作原理基于一系列的电子组件和电路
AC/DC电源模块的工作原理基于一系列的电子组件和电路
AC/DC电源模块的工作原理基于一系列的电子组件和电路
|
消息中间件 监控 NoSQL
中间件应用合理配置内存
【5月更文挑战第4天】中间件应用合理配置内存
325 2
中间件应用合理配置内存
|
数据采集 数据处理 异构计算
ZYNQ(FPGA)与DSP之间SRIO通信实现
XQ6657Z35-EVM多核开发板通过SPI、EMIF16、uPP、SRIO 通信接口将DSP 与Zynq 结合在一起,组成DSP+Zynq 架构,实现了需求独特、灵活、功能强大的DSP+Zynq 高速数据采集处理系统。
ZYNQ(FPGA)与DSP之间SRIO通信实现
|
运维 监控 Devops
构建高质量的持续交付体系
前面的文章,聊了软件工程的基础理论、项目管理、需求分析、架构设计、软件测试以及线上服务的质量保障。其中在架构设计和线上服务的质量保障中,我也提到了关于持续集成持续交付相关的内容。软件工程的本质是用工程化的方法去规范软件开发,让软件开发项目可以按时保质完成的同时且成本可控。

热门文章

最新文章