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()函数详解(动态内存开辟函数)
547 0
|
JSON 数据格式
Redisson官方文档 - 4. 数据序列化
Redisson的对象编码类是用于将对象进行序列化和反序列化,以实现对该对象在Redis里的读取和存储。Redisson提供了多种的对象编码供大家选择。
11140 0
|
11月前
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法
Debian 11更新Node.js主要就是这三种方式,无论你是初涉其中的新手还是找寻挑战的专家,总有一种方式能满足你的需求。现在,你已经是这个
1315 80
|
11月前
|
数据挖掘 开发者 索引
鸿蒙5开发宝藏案例分享---Grid性能优化案例
本文深入探讨了鸿蒙系统中Grid组件性能优化的实战技巧,针对Grid加载慢、滚动卡顿的问题,提出用GridLayoutOptions替代columnStart/columnEnd的方法。通过预定义不规则项索引,将位置计算复杂度从O(n)降至O(1),大幅提升性能(如scrollToIndex耗时从447ms降至12ms)。文章结合代码示例与Profiler数据分析,总结最佳实践,帮助开发者优化应用流畅度。
|
JavaScript 索引
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
1282 0
AC/DC电源模块的工作原理基于一系列的电子组件和电路
AC/DC电源模块的工作原理基于一系列的电子组件和电路
AC/DC电源模块的工作原理基于一系列的电子组件和电路
|
缓存 iOS开发
iOS小技能:解决TableVIew刷新数据带来的界面跳动问题
iOS小技能:解决TableVIew刷新数据带来的界面跳动问题
2245 0
iOS小技能:解决TableVIew刷新数据带来的界面跳动问题
|
JavaScript Java 测试技术
基于微信的垃圾分类小程序+springboot+vue.js附带文章和源代码设计说明文档ppt
基于微信的垃圾分类小程序+springboot+vue.js附带文章和源代码设计说明文档ppt
243 0
|
SQL 监控 Oracle
oracle阻塞会话与kill
oracle阻塞会话与kill
|
数据可视化 数据挖掘 Linux
数据可视化丨优雅的绘制带显著性标记的箱线散点图,主要使用ggsignif和ggplot2
数据可视化丨优雅的绘制带显著性标记的箱线散点图,主要使用ggsignif和ggplot2

热门文章

最新文章