本文主要是介绍ggplot:云雨图 + 对称小提琴图 + 配对散点图 + 箱图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ggplot 画图经验
–
数据整理
`将数据整理成 长表格 的形式
在部分可以通过采用 tidy 包中的 pivot函数
绘图
相关的 package
library(tidyverse)
library(gghalves) # 用于绘制分半小提琴图
画该图中的一个重点是如何将两个小提琴分别朝向不同的方向,在这里,我采用了 gghalves 包中的
geom_half_violin 函数,并通过 filter 分别将变量的两个水平分别绘制出来(分别朝向左或右), 并通过position函数指定每个小提琴的位置。
ggplot(data = exp5_plot, aes(y = RT)) +geom_point(aes(y= RT, x = phase, fill = phase, color = phase),position = position_jitterdodge(jitter.width = .3, jitter.height = .1,dodge.width = 0.3), size = 3, shape = 20, alpha = 0.6) +geom_line(aes( x = phase, group = filename) , color = "lightgray", alpha = .8) +geom_boxplot(data = exp5_plot %>% filter(phase=="pre"),aes(fill = phase), position = position_nudge(x = .85), width = .1, alpha = .3,outlier.shape = NA,)+geom_boxplot(data = exp5_plot %>% filter(phase=="post"),aes(fill = phase), position = position_nudge(x = 2.15), width = .1, alpha = .3)+geom_half_violin( data = exp5_plot %>% filter(phase=="pre"), aes(fill = phase, x= phase), position = position_nudge(x = -.25), adjust = 1, trim = T, alpha = .5, colour = NA, side = "l") +geom_half_violin( data = exp5_plot %>% filter(phase=="post"), aes(fill = phase, x= phase), position = position_nudge(x = .25), adjust = 1, trim = T, alpha = .5, colour = NA, side = "r") +facet_grid(condition~test) +theme_bw()+labs(y = "Response Time")+ theme(axis.title.x = element_text(size = 15,family = "Arial"),axis.title.y = element_text(size = 15,family = "Arial"),axis.text.x = element_text(size = 12, family = "Arial"),axis.text.y = element_text(size = 12, family = "Arial"),strip.text.x = element_text(size = 12, family = "Arial"),legend.position = "none",panel.grid.major = element_line(color = NA),panel.grid.minor = element_blank())
实际图形
Note:考虑到我们给散点加了jitter,散点的位置可能与真实位置存在些许偏差,并且配对线中也并非完全起止于散点,有必要的话可以考虑删除jitter,或在论文中做相应说明。
这篇关于ggplot:云雨图 + 对称小提琴图 + 配对散点图 + 箱图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!