ggstatsplot | 一个满足你日常统计需求的高颜值R包(一)

1. 加载需要的R包

library(ggstatsplot)
library(ggplot2)

2. 用到的数据

本期用到的数据movies_long

dat <- movies_long

3. 组间比较

3.1 初步绘制
p1 <- ggbetweenstats(
  dat,
  x = mpaa,
  y = rating
)
p1


3.2 标记outlier

type 为可选统计类型包括

"p"parametric
"np"non-parametric
"r"robust
"bf"Bayesian

p2 <- ggbetweenstats(
  data = dat,
  x = mpaa,
  y = rating,
  type = "r", # "parametric", "nonparametric", "robust", "bayes"
  outlier.tagging = TRUE,
  outlier.label = title
)
p2


3.3 当然你也可以选择画boxplot

更改plot.type即可

p3 <- ggbetweenstats(
  dat,
  x = mpaa,
  y = rating,
  plot.type = "box" # box, boxviolin, violin
)
p3


3.4 只画violinplot
p4 <- ggbetweenstats(
  dat,
  x = mpaa,
  y = rating,
  plot.type = "violin" # box, boxviolin, violin
)
p4


3.5 把这几个图组合到一起

ps:你也可以选择别的拼图包,如cowplot

combine_plots(
  list(p1, p2, p3, p4),
  plotgrid.args = list(nrow = 2),
  annotation.args = list(
    title = "Comparison of rating among different mpaa",
    caption = "Source:  movies_long"
  )
)


4. 复杂分组间比较

用到的函数是grouped_ggbetweenstats

4.1 比较不同genre的mpaa各组的rating
 grouped_ggbetweenstats(data = dat,
    ## arguments relevant for ggbetweenstats
    x = mpaa,
    y = rating,
    grouping.var = genre,
    xlab = "mpaa",
    ylab = "rating",
    pairwise.display = "significant", ## display only significant pairwise comparisons
    p.adjust.method = "fdr", ## adjust p-values for multiple tests using this method
    # ggtheme = ggthemes::theme_tufte(),
    package = "ggsci",
    palette = "default_jco",
    outlier.tagging = TRUE,
    outlier.label = title,
    ## arguments relevant for combine_plots
    annotation.args = list(title = "Comparison of rating among different mpaa"),
    plotgrid.args = list(ncol = 3,nrow = 3)
  )


4.2 一次性应用不同分析方法

上面这种方法虽然很方便,但我们有可能想在不同的亚组中用不同的统计方法,这个时候可以利用purr包进行批量绘制

## 分割数据并转为list(由于数据较大,这里仅选取3个genre进行下一步的分析)
dat_list <- dat %>% 
  dplyr::filter(genre %in% c("Drama", "Action", "Comedy")) %>% 
  split(f = .$genre, drop = T)

## 查看list参数
length(dat_list)
names(dat_list)

## 用`pmap`函数进行批量绘制
plot_list <- purrr::pmap(
  .l = list(
    data = dat_list,
    x = "mpaa",
    y = "rating",
    outlier.tagging = TRUE,
    outlier.label = "title",
    outlier.label.args = list(
      list(size = 3, color = "#56B4E9"),
      list(size = 2.5, color = "#009E73"),
      list(size = 3.5, color = "#F0E442")
    ),
    xlab = "mpaa",
    ylab = "rating",
    title = list(
      "Drama", 
      "Action", 
      "Comedy"
    ),
    type = list("r", "bf", "np"),
    pairwise.display = list("s", "ns", "all"),
    p.adjust.method = list("hommel", "bonferroni", "BH"),
    conf.level = list(0.99, 0.95, 0.90),
    k = list(1, 2, 3),
    effsize.type = list(
      NULL,
      "partial_omega",
      "partial_eta"
    ),
    plot.type = list("box", "boxviolin", "violin"),
    package = list("nord", "ochRe", "awtools"),
    palette = list("aurora", "parliament", "bpalette"),
    ggtheme = list(
      ggthemes::theme_stata(),
      ggplot2::theme_classic(),
      ggthemes::theme_fivethirtyeight()
    )
  ),
  .f = ggbetweenstats
)

最后进行可视化
combine_plots(
  plotlist = plot_list,
  annotation.args = list(title = ""),
  plotgrid.args = list(ncol = 3)
)


三明治

最后祝大家早日不卷!~

点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值