查看原文
其他

跟着论文学习ggplot2绘图

ANERYAN R语言数据分析指南 2023-06-15

欢迎关注R语言数据分析指南

本节来分享一篇讲解如何使用R语言来做数据分析的论文,如下所示;作者提供有完整的数据及代码下面来看看具体内容

论文网址

  • https://journals.sagepub.com/doi/full/10.1177/25152459221074654

交互式代码

  • https://psyteachr.github.io/introdataviz/

可以看到从简介入门到高级绘图总共分为7个部分,很是全面详细;有最基础的箱线图也有美观的分裂小提琴图,如下所示

分裂小提琴图

devtools::install_github("psyteachr/introdataviz")
ggplot(dat_long, aes(x = condition, y = rt, fill = language)) +
  introdataviz::geom_split_violin(alpha = .4, trim = FALSE) +
  geom_boxplot(width = .2, alpha = .6, fatten = NULL, show.legend = FALSE) +
  stat_summary(fun.data = "mean_se", geom = "pointrange", show.legend = F, 
               position = position_dodge(.175)) +
  scale_x_discrete(name = "Condition", labels = c("Non-word""Word")) +
  scale_y_continuous(name = "Reaction time (ms)",
                     breaks = seq(200, 800, 100), 
                     limits = c(200, 800)) +
  scale_fill_brewer(palette = "Dark2", name = "Language group") +
  theme_minimal()

云雨图

rain_height <- .1

ggplot(dat_long, aes(x = "", y = rt, fill = language)) +
  # clouds
  introdataviz::geom_flat_violin(trim=FALSE, alpha = 0.4,
    position = position_nudge(x = rain_height+.05)) +
  # rain
  geom_point(aes(colour = language), size = 2, alpha = .5, show.legend = FALSE, 
              position = position_jitter(width = rain_height, height = 0)) +
  # boxplots
  geom_boxplot(width = rain_height, alpha = 0.4, show.legend = FALSE, 
               outlier.shape = NA,
               position = position_nudge(x = -rain_height*2)) +
  # mean and SE point in the cloud
  stat_summary(fun.data = mean_cl_normal, mapping = aes(color = language), show.legend = FALSE,
               position = position_nudge(x = rain_height * 3)) +
  # adjust layout
  scale_x_discrete(name = "", expand = c(rain_height*3, 0, 0, 0.7)) +
  scale_y_continuous(name = "Reaction time (ms)",
                     breaks = seq(200, 800, 100), 
                     limits = c(200, 800)) +
  coord_flip() +
  facet_wrap(~factor(condition, 
                     levels = c("word""nonword"), 
                     labels = c("Word""Non-Word")), 
             nrow = 2) +
  # custom colours and theme
  scale_fill_brewer(palette = "Dark2", name = "Language group") +
  scale_colour_brewer(palette = "Dark2") +
  theme_minimal() +
  theme(panel.grid.major.y = element_blank(),
        legend.position = c(0.8, 0.8),
        legend.background = element_rect(fill = "white", color = "white"))

具体内容请查看论文内容,此外作者也提供了精美的PDF版本方便大家学习,后台回复「Rpdf」即可获取对应的

欢迎大家扫描下方二位码加入「QQ交流群」,与全国各地上千位小伙伴交流

「关注下方公众号下回更新不迷路」,如需要加入微信交流群可添加小编微信,请备注单位+方向+姓名

跟着Nature学绘图(2) 箱线图-累积分布曲线图


跟着Nature学绘图(1) 热图|散点图


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存