专为高校与科研人员打造的科研绘图代码合集(R 语言)
提供常见学术期刊风格图形的可复用脚本与模板,覆盖数据读取、整理到可视化的完整链路,支持一键复现与自定义主题。
- 项目简介
- 目录结构
- 快速开始-quick-start
- 脚本清单(自动生成)
- 通用参数与主题
- 数据格式建议
- 复现实验-reproducibility
- 常见问题-faq
- 贡献-contributing
- 许可证-license
- 致谢-acknowledgement
- 代码语言:R(100%)
- 许可证:Apache-2.0(可商用、可修改与再发布,需保留版权与许可声明)
- 适用场景:论文制图、课题汇报、项目可视化、学术海报等
- 设计目标:规范化(统一主题)、可复现(固定依赖)、可复用(模块化函数)、易扩展(新图表可平滑接入)
下方为“自动生成区间”。已预置目录树,CI 运行后会自动替换为最新目录树。
.
├─ Code/
│ ├─ 00. 出版级绘图主题与导出函数.R
│ ├─ 01. 分组折线图+蜂群图+柱状图.R
│ ├─ 02. 气泡热图.R
│ ├─ 03. 网络相关性热图.R
│ ├─ 04. 采样地图.R
│ ├─ 05. 箱线图+抖动点.R
│ ├─ 06. 小提琴图+箱线图.R
│ ├─ 07. 分面柱状图.R
│ ├─ 08. 百分比堆积柱状图.R
│ ├─ 09. 误差线折线图.R
│ ├─ 10. 面积图.R
│ ├─ 11. 直方图+密度曲线.R
│ ├─ 12. QQ图.R
│ ├─ 13. 双变量散点回归图.R
│ ├─ 14. 二维密度图.R
│ ├─ 15. 火山图.R
│ ├─ 16. PCA散点图.R
│ ├─ 17. 雷达图(极坐标).R
│ ├─ 18. 树图(Treemap).R
│ ├─ 19. 桑基图(ggalluvial).R
│ ├─ 20. 环形图.R
│ ├─ 21. 棒棒糖图.R
│ ├─ 22. Cleveland点图.R
│ ├─ 23. 日历热图.R
│ └─ 24. 极坐标玫瑰图.R
├─ Run Guide/
│ ├─ 01. 分组折线图+蜂群图+柱状图.md
│ ├─ 02. 气泡热图.md
│ ├─ 03. 网络相关性热图.md
│ ├─ 04. 采样地图.md
│ ├─ 05. 箱线图+抖动点.md
│ ├─ 06. 小提琴图+箱线图.md
│ ├─ 07. 分面柱状图.md
│ ├─ 08. 百分比堆积柱状图.md
│ ├─ 09. 误差线折线图.md
│ ├─ 10. 面积图.md
│ ├─ 11. 直方图+密度曲线.md
│ ├─ 12. QQ图.md
│ ├─ 13. 双变量散点回归图.md
│ ├─ 14. 二维密度图.md
│ ├─ 15. 火山图.md
│ ├─ 16. PCA散点图.md
│ ├─ 17. 雷达图(极坐标).md
│ ├─ 18. 树图(Treemap).md
│ ├─ 19. 桑基图(ggalluvial).md
│ ├─ 20. 环形图.md
│ ├─ 21. 棒棒糖图.md
│ ├─ 22. Cleveland点图.md
│ ├─ 23. 日历热图.md
│ └─ 24. 极坐标玫瑰图.md
├─ tools/
│ └─ build_readme_table.R
├─ LICENSE
└─ README.md
建议 R ≥ 4.2,并安装常用依赖(按需增减):
install.packages(c(
"ggplot2","tidyverse","dplyr","readr","readxl",
"data.table","ggpubr","patchwork","cowplot",
"scales","stringr","forcats","here",
"sf","rgeos","sp","rgdal","ggsci"
))若
Code/内有自定义函数(如utils_theme.R,utils_plot.R),请在脚本开头source()引入,或封装为包统一管理。
git clone https://github.com/SoMic520/R-Plot-Code.git
cd R-Plot-Code以柱状图脚本为例(假设存在 Code/01_barplot.R):
# 在仓库根目录的 R 控制台执行
source("Code/01_barplot.R")- 如脚本依赖示例数据,请将数据放在
Run Guide/或脚本同级目录,并在脚本内配置相对路径 - 推荐使用
here::here()保持路径稳健
下方为“自动生成区间”。已预置示例表格,CI 运行后会自动替换为扫描
Code/目录得到的最新清单。
| 脚本 | 相对路径 | 行数 | 大小KB | 最近提交时间 |
|---|---|---|---|---|
| 00. 出版级绘图主题与导出函数.R | Code/00. 出版级绘图主题与导出函数.R | 46 | 1.9 | |
| 01. 分组折线图+蜂群图+柱状图.R | Code/01. 分组折线图+蜂群图+柱状图.R | 222 | 11.1 | |
| 02. 气泡热图.R | Code/02. 气泡热图.R | 127 | 5.0 | |
| 03. 网络相关性热图.R | Code/03. 网络相关性热图.R | 101 | 4.6 | |
| 04. 采样地图.R | Code/04. 采样地图.R | 218 | 10.9 | |
| 05. 箱线图+抖动点.R | Code/05. 箱线图+抖动点.R | 38 | 1.5 | |
| 06. 小提琴图+箱线图.R | Code/06. 小提琴图+箱线图.R | 36 | 1.3 | |
| 07. 分面柱状图.R | Code/07. 分面柱状图.R | 40 | 1.5 | |
| 08. 百分比堆积柱状图.R | Code/08. 百分比堆积柱状图.R | 35 | 1.3 | |
| 09. 误差线折线图.R | Code/09. 误差线折线图.R | 42 | 1.4 | |
| 10. 面积图.R | Code/10. 面积图.R | 36 | 1.2 | |
| 11. 直方图+密度曲线.R | Code/11. 直方图+密度曲线.R | 32 | 1.2 | |
| 12. QQ图.R | Code/12. QQ图.R | 30 | 0.9 | |
| 13. 双变量散点回归图.R | Code/13. 双变量散点回归图.R | 40 | 1.3 | |
| 14. 二维密度图.R | Code/14. 二维密度图.R | 34 | 1.1 | |
| 15. 火山图.R | Code/15. 火山图.R | 41 | 1.4 | |
| 16. PCA散点图.R | Code/16. PCA散点图.R | 37 | 1.3 | |
| 17. 雷达图(极坐标).R | Code/17. 雷达图(极坐标).R | 46 | 1.4 | |
| 18. 树图(Treemap).R | Code/18. 树图(Treemap).R | 38 | 1.5 | |
| 19. 桑基图(ggalluvial).R | Code/19. 桑基图(ggalluvial).R | 40 | 1.4 | |
| 20. 环形图.R | Code/20. 环形图.R | 46 | 1.5 | |
| 21. 棒棒糖图.R | Code/21. 棒棒糖图.R | 35 | 1.1 | |
| 22. Cleveland点图.R | Code/22. Cleveland点图.R | 38 | 1.4 | |
| 23. 日历热图.R | Code/23. 日历热图.R | 40 | 1.3 | |
| 24. 极坐标玫瑰图.R | Code/24. 极坐标玫瑰图.R | 34 | 1.1 |
- 主题(Theme):建议集中在
utils_theme.R中维护期刊风格主题(字号、线宽、字体、图例等),通过theme_set()或自定义theme_pub()统一调用 - 配色(Palette):优先
ggsci(期刊友好),或scale_*_manual()配合品牌色 - 导出(Export):统一
ggsave(filename, width, height, dpi, device="pdf/png");尺寸按期刊版式(常见:单栏 85 mm、双栏 170 mm) - 字体(Fonts):中文可配合系统字体与
showtext;导出 PDF 建议嵌入字体,避免投稿替换失败
- 表头命名清晰、无空格;分类变量建议设为
factor - 数值变量保留合适小数位
- 若脚本依赖特定列名(如
group,treatment,value),请在脚本注释或本 README 中明确
- 固定随机种子:
set.seed(123) - 记录依赖:在关键脚本末尾
sessionInfo()输出到日志 - 提供最小可运行示例(MRE)与示例数据,置于
Run Guide/并在脚本开头说明
Q1:路径报错怎么办?
A:确认工作目录在仓库根目录,或使用 here::here() 生成稳健路径。
Q2:字体缺失?
A:在系统安装并通过 extrafont/showtext 注册;导出 PDF 时尽量嵌入字体。
Q3:包安装失败?
A:更换 CRAN 镜像,或使用 pak::pak() 处理二进制依赖。
Q4:空间数据读取失败?
A:确认 GDAL/PROJ 等依赖正确安装(Windows 建议优先用 sf 的二进制包)。
欢迎提交 PR / Issue 改进脚本、补充示例与中文注释:
- Fork 本仓库并创建特性分支
- 附上最小可重现数据与渲染结果
- 遵循统一的代码风格与主题规范
本项目采用 Apache-2.0 许可证,详见 LICENSE。
感谢所有对科研图形规范化与复现性做出贡献的同学与老师。若你的工作基于本仓库代码,引用或在致谢中标注本仓库链接将帮助更多人受益。