ggplot_QQ图和ECDF

时间:2022-07-25
本文章向大家介绍ggplot_QQ图和ECDF,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

QQ图和ECDF

sunqi

2020/8/3

QQ图

用来描述数据正态性的问题,配合正态性检验进行分析

主要的函数和参数

stat_qq()

color, shape and size:和之前一样

代码

rm(list = ls())
# 导入需要的包
library(ggplot2)
# 用于绘图拼接
library(patchwork)
# 用于数据处理分析
library(tidyverse)
# 设置ggplot的主题
theme_set(theme_minimal() +
            theme(legend.position = "top"))

#自定义数据get函数
get_data <- function() {
  set.seed(1234)
  df = data.frame(sex = factor(rep(c("F", "M"), each = 200)),
                  weight = c(rnorm(200, 55), rnorm(200, 58)))
  return(df)
}
#调用函数
dataset <- get_data()

# 绘图

p1 <- dataset %>% ggplot(aes(sample = weight)) +
  # QQ图,根据颜色分组
  stat_qq(aes(color = sex)) +
  # 配色方案
  scale_color_manual(values = c("#00AFBB", "#E7B800")) +
  # 添加lab
  labs(y = "Weight")

# 除了ggplot2,ggpbur也可以进行qq图的绘制
# 使用ggpbur包中的ggqqplot函数绘制
library(ggpubr)

p2 <- dataset %>%  ggqqplot(
  x = "weight",
  color = "sex",
  palette = c("#0073C2FF", "#FC4E07"),
  # 设置主题
  ggtheme = theme_pubclean()
)

# 这里就体现出ggpubr的优势,好看
p1 + p2

ECDF图

ECDF:Empirical cumulative distribution function,用于描述数据的分布,横坐标为指标,纵坐标为累计概率

从图中可以看出数据的分布比例

代码

# 绘图
p3 <- dataset %>% ggplot(aes(x = weight)) +
  # ECDF函数
  # 设置性别组,绘制两条曲线
  stat_ecdf(aes(color = sex, linetype = sex),
            # 阶梯状的升高
            geom = "step",
            size = 1.5) +
  # 配色方案
  scale_color_manual(values = c("#00AFBB", "#E7B800")) +
  labs(y = "f(weight)")
# x周为体重的值,y轴为比例
# 从图中可以看出小于多少体重占比n%
p3

结束语

此次为ggplot2系列的最后一次内容,基本的图形已经介绍完毕,总体来说,ggplot语法结构大同小异,用的时候查函数就行。其实ggplot还可以实现很多绘图的功能,暂时就更新到这里,其他绘图后面有时间再更新,希望能够完善。

love&peace