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文档 ,包含测试数据 ,代码一键复制交互式阅读提高用户体验

相关推荐
一壶浊酒..3 小时前
Scrape Webpack练习
开发语言·javascript·webpack
命运之光3 小时前
【C语言完整代码】就诊信息管理系统
java·c语言·开发语言
命运之光3 小时前
【C语言完整代码】图书管理系统:图书馆场景下的增删改查实战
c语言·开发语言
猿长大人4 小时前
C# | Serilog 新手入门
开发语言·c#·.net·log
在世修行5 小时前
从零打造 C# 工业视觉检测系统(七):串口通信 SerialPort 封装与开发
开发语言·c#·modbus rtu·rs232/rs485
Hammer_Hans6 小时前
DFT笔记98
java·开发语言·数据库
qq_448011167 小时前
C语言中的野指针和空指针
c语言·开发语言·单片机
估值探索者7 小时前
【Python实时盯盘与预警 #08】成交额突然放大2倍?Python窗口比较抓异动
java·开发语言·python
yk 坤帝7 小时前
用Python实现发送《自动周报》实战脚本
开发语言·python
abbgogo9 小时前
OSPF动态路由协议
开发语言·php