R 语言科研绘图第 20 期 --- 箱线图-配对

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。

为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式:

R 语言科研绘图模板 --- sciRplothttps://mp.weixin.qq.com/s/QA_8LVqjkdg4A16zLonw4w?payreadticket=HLhuy98A4H7uWmJW_snkz-a2Wljhix8maMc8B1AdNs4K8ETaNAfwVbV7kjtrpWWzSOIaM14

本期绘图预览:

1. 导入包

我们首先导入本期绘图用到的 R 包:

复制代码
library(ggplot2)

2. 准备数据

接下来我们导入绘图用到的数据,在 sciRplot 中给大家提供了测试数据:

复制代码
data <- sciRplot_data

3. 准备配色

颜色的选择往往是一件让人特别纠结的事情,这里我们直接使用 sciRcolor 来设置配色:

复制代码
colors <- sciRcolor::pal_scircolor(37)[1:2]high_colors <- colors[1]low_colors <- colors[2]

sciRcolor 是为了 R 语言科研绘图开发的配色工具,包含了 100 种常用配色,详细信息见:

R 语言科研配色工具 --- sciRcolorhttps://mp.weixin.qq.com/s/XZol4VxvHnJD_49ij3f2mg?payreadticket=HDFtqwYBbWO-z5igYqT4uSX-PCHhv6ey3sm-fLaj4GTSttg31NOH0zQLPPovnvmxe4tCE_0

4. 绘制图形

接下来我们通过下面的代码来绘制图形:

复制代码
p <-   ggplot(data, aes(x=Type, y=Value, fill=Type, color=Type)) +  stat_boxplot(geom="errorbar", width=0.2) +  geom_boxplot(width=0.5, fill=NA) +  geom_line(aes(group=Pire), position = position_dodge(0.2), color="black",            alpha=0.5) +  geom_point(aes(fill=Type, group=Pire), position = position_dodge(0.2),             shape=21, color="black") +   labs(x="Name", y="Value") +  scale_y_continuous(breaks=seq(0,255,50), limits = c(0,255),                     expand = expansion(mult = c(0, 0.05))) +  facet_wrap(.~Name, nrow=1)+  theme_classic(base_size = 25) +  theme(panel.grid.major.y = element_line(), strip.background = element_blank(),        legend.position = "top") +  scale_fill_manual(values = c(high=high_colors, low=low_colors)) +  scale_color_manual(values = c(high=high_colors, low=low_colors))p

5. 保存图形

最后我们保存绘制的图形:

复制代码
ggsave("save/box-paired.png", p, width = 8, height = 6, dpi = 300)

sciRplot 介绍

为了解决 R 语言中科研绘图的问题,我推出了 sciRplot 项目。sciRplot 项目包含了以下内容:

100 种绘图代码,按照图形类型进行分类,包含 60基础绘图40进阶绘图

② 配备一站式 html文档 ,包含测试数据 ,代码一键复制交互式阅读提高用户体验

相关推荐
代码or搬砖6 分钟前
Collections和Arrays
java·开发语言
吴名氏.17 分钟前
电子书《Java程序设计与应用开发(第3版)》
java·开发语言·java程序设计与应用开发
于慨29 分钟前
dayjs处理时区问题、前端时区问题
开发语言·前端·javascript
listhi52039 分钟前
基于MATLAB的LTE系统仿真实现
开发语言·matlab
ss2731 小时前
ScheduledThreadPoolExecutor异常处理
java·开发语言
ejjdhdjdjdjdjjsl1 小时前
Winform初步认识
开发语言·javascript·ecmascript
六毛的毛1 小时前
比较含退格的字符串
开发语言·python·leetcode
xingzhemengyou11 小时前
Python GUI之tkinter-基础控件
开发语言·python
挖矿大亨1 小时前
C++中深拷贝与浅拷贝的原理
开发语言·c++·算法
崇山峻岭之间1 小时前
Matlab学习记录16
开发语言·学习·matlab