关于更多R编程基础,作图和统计学知识,感兴趣的小伙伴们可以查看新手课程介绍,或长按下方二维码,即可学习我们的新手课程啦,助你轻松解决R语言学习上的入门难问题!
都说“耳濡目染”
这篇JAMA子刊论文中[1]的图看起来很是高级,我们今天就来重复一下A图吧~
install.packages('ggplot2')
library(ggplot2)
set.seed(227)
mydata <- data.frame(
treatment = rep(c('Placebo', 'Urolithin A'), each = 33),
value = c(
rnorm(33, mean = 42.5, sd = 73.3),
rnorm(33, mean = 60.8, sd = 67.2)
)
)
head(mydata, 10)
ggplot(mydata, aes(x = treatment, y = value)) +
stat_summary(fun.data = mean_se, geom = 'errorbar', width = 0.2) + # 误差棒
stat_summary(fun = mean, geom = 'crossbar', width = 0.5, size = 0.2) + # 指代均数的水平横线
geom_jitter(aes(colour = treatment), size = 2.5, width = 0.2, height = 0.25) +
scale_colour_manual(values = c('#3D5960', '#DA9D55')) + # 手动指定颜色
scale_y_continuous(limits = c(-200, 300), expand = c(0, 0)) + # 自定义y轴
scale_x_discrete(limits = c('Placebo', '', 'Urolithin A')) + # 自定义x轴
theme_classic() + # 图片主题
theme( # 图片修饰
plot.margin = margin(t = 40, r = 20, b = 20, l = 20), # 上、右、下、左方空白
axis.line = element_line(colour = 'grey30', size = 0.23), # 修饰坐标轴
axis.ticks.y = element_line(size = 0.3, colour = 'grey30'),
axis.ticks.x = element_line(size = 0.3, colour = c('transparent', 'grey30', 'transparent')),
axis.text.x = element_blank(),
panel.grid.major.y = element_line(colour = 'grey80'), # 背景网格线
legend.box.background = element_rect(colour = 'grey30'), # 修饰legend
legend.title = element_blank(),
legend.position = c(0.15, 0.95),
legend.margin = margin(1, 5, 3, 1),
plot.title = element_text(size = 12, vjust = 10) # 图片标题
) +
labs( # 文本
title = 'Change in 6-min walking distance',
x = 'Baseline to 4 mo',
y = 'Distance, m'
)
联系客服