R 语言科研绘图第 14 期 --- 柱状图-分组堆叠

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

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

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

本期绘图预览:

1. 导入包

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

复制代码
library(ggplot2)

2. 准备数据

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

复制代码
data <- sciRplot_data

3. 准备配色

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

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

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

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

4. 绘制图形

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

复制代码
p <-   ggplot() +  geom_bar(data1, mapping=aes(x=group, y=Value, color=Type, fill=Type),            position = "stack", stat = "identity", width = 0.3) +  geom_bar(data2, mapping=aes(x=group+0.3+0.1, y=Value, color=Type, fill=Type),
           position = "stack", stat = "identity", width = 0.3) +
  labs(x="Date", y="Value") +  scale_y_continuous(breaks=seq(0,600,200), limits = c(0,600),                     expand = expansion(mult = c(0, 0.05))) +  theme_classic(base_size = 25) +  theme(panel.grid.major.y = element_line(),        legend.position = "top") +  scale_x_continuous(breaks = c(1.2,2.2,3.2),                     labels = c("Mon","Tue","Wed"))+  scale_fill_manual(values = colors) +  scale_color_manual(values = colors)p

5. 保存图形

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

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

sciRplot 介绍

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

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

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

相关推荐
小徐不徐说6 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
ragnwang6 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
Wang's Blog6 小时前
Java 项目实战: 交友项目 - 搜索附近的功能概述和分析
java·开发语言·交友
骑着蜗牛撵大象3276 小时前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm
Dxy12393102167 小时前
JS DES 加密详解
开发语言·javascript·arcgis
充值内卷7 小时前
我给桌面加了个鱼缸:C++ 写后端,WebView2 里养一座 Three.js 小岛
开发语言·javascript·c++
云和数据.ChenGuang8 小时前
深入解析 Python 的 dir():从用法到 CPython 源码实现
开发语言·人工智能·python·langchain
nice_lcj5208 小时前
深入理解 Java 反射:从 Class 对象到方法调用(含性能实测 + 迷你 IOC 实战 + 面试考点)
java·开发语言·后端·面试
樱花树下的数学喵10 小时前
手写简易 STL string|C++ 字符串底层实现
开发语言·c++
jimy111 小时前
C++ 报错的 qualifiers 的意思
开发语言·c++