菜鸟科技网

ggsci命令是什么?如何使用?

ggsci 是一个专门为 ggplot2 设计的扩展包,它的核心功能是提供一系列高质量的、受知名学术期刊(如 Nature, Science, The Lancet)和流行软件(如 JASP, RColorBrewer)启发的调色板。

ggsci命令是什么?如何使用?-图1
(图片来源网络,侵删)

ggsci 让你能够轻松地为你的 ggplot2 图形应用专业、美观且具有辨识度的配色方案。


为什么使用 ggsci

在数据可视化中,配色至关重要。ggsci 的优势在于:

  • 专业美观:其调色板经过精心设计,常用于顶级科学期刊的图表,能显著提升图形的专业感和可读性。
  • 易于使用:与 ggplot2 无缝集成,只需替换 scale_fill_*scale_color_* 函数即可。
  • 种类丰富:提供了多种主题风格的调色板,包括 npg (Nature Publishing Group), aaas (Science), nejm (New England Journal of Medicine), jco (Journal of Clinical Oncology), d3 (D3.js), lancet 等。
  • 解决色盲友好问题:很多 ggsci 的调色板是色盲友好的,这对于确保图表对所有人(包括色盲人士)都是可读的非常重要。

安装与加载

你需要安装并加载 ggsci 包。

# 安装
install.packages("ggsci")
# 加载
library(ggsci)
library(ggplot2) # ggsci 依赖于 ggplot2

核心功能:调色板函数

ggsci 的核心是一系列 scale_*_pal_* 函数,用于创建 ggplot2 可以识别的调色度尺。

ggsci命令是什么?如何使用?-图2
(图片来源网络,侵删)
  • scale_color_pal_...():用于设置颜色(如点、线、文本的颜色)。
  • scale_fill_pal_...():用于设置填充色(如条形、箱线图的内部填充)。
  • scale_alpha_pal_...():用于设置透明度。

这些函数通常与 ggplot2scale_*_manual()scale_*_gradientn() 结合使用。


常用调色板示例

下面我们通过几个常见的场景来展示 ggsci 的用法。

示例 1:离散分类变量(如不同组别)

假设我们想用 Nature 期刊风格的调色板来绘制 mpg 数据集中不同 class 的车辆数量。

# 使用 ggplot2 的 geom_bar 绘制条形图
p <- ggplot(mpg, aes(x = class, fill = class)) +
  geom_bar() +
  labs(title = "Nature (npg) Palette", x = "Class", y = "Count") +
  theme_minimal() +
  theme(legend.position = "none") # 隐藏图例,让图形更简洁
# 应用 ggsci 的 npg 调色板
p + scale_fill_npg()

其他常见离散调色板:

ggsci命令是什么?如何使用?-图3
(图片来源网络,侵删)
# Science (aaas) 风格
ggplot(mpg, aes(x = class, fill = class)) +
  geom_bar() +
  scale_fill_aaas() +
  labs(title = "Science (aaas) Palette") +
  theme_minimal() +
  theme(legend.position = "none")
# JCO (Journal of Clinical Oncology) 风格
ggplot(mpg, aes(x = class, fill = class)) +
  geom_bar() +
  scale_fill_jco() +
  labs(title = "JCO Palette") +
  theme_minimal() +
  theme(legend.position = "none")
# D3 (Category10) 风格
ggplot(mpg, aes(x = class, fill = class)) +
  geom_bar() +
  scale_fill_d3() +
  labs(title = "D3 Category10 Palette") +
  theme_minimal() +
  theme(legend.position = "none")

示例 2:连续变量(如渐变色)

ggsci 也提供了用于连续变量的调色板,这些调色板通常是从一种颜色平滑过渡到另一种颜色。

假设我们想用 Lancet 期刊风格的渐变色来展示 mpg 数据集中的 hwy 公里数。

ggplot(mpg, aes(x = displ, y = hwy, color = hwy)) +
  geom_point(size = 3) +
  labs(title = "Lancet Palette for Continuous Data", x = "Displacement", y = "Highway MPG") +
  theme_minimal() +
  # 使用 scale_color_lancet() 创建一个从浅蓝到深蓝的渐变
  scale_color_lancet() 

其他常见连续调色板:

# GSEA GenePattern 调色板,常用于展示基因表达数据
ggplot(mpg, aes(x = displ, y = hwy, color = hwy)) +
  geom_point(size = 3) +
  scale_color_gsea() +
  labs(title = "GSEA GenePattern Palette") +
  theme_minimal()

高级用法:自定义调色板

你可能不想使用整个调色板,而是只想选择其中的几个颜色。ggsci 提供了 pal_...() 函数来提取调色板的颜色向量,然后你可以手动指定。

假设我们只需要 npg 调色板中的前 4 种颜色。

# 1. 提取 npg 调色板中的前4个颜色
npg_colors <- pal_npg("npg")(4)
print(npg_colors)
# [1] "#E41A1C" "#377EB8" "#4DAF4A" "#984EA3"
# 2. 手动将这些颜色映射到你的数据
ggplot(mpg, aes(x = class, fill = class)) +
  geom_bar() +
  # 使用 scale_fill_manual() 并传入我们自定义的颜色向量
  scale_fill_manual(values = npg_colors) +
  labs(title = "Custom npg Palette (First 4 Colors)") +
  theme_minimal() +
  theme(legend.position = "none")

这种方法非常灵活,你可以根据需要组合不同调色板中的颜色。


所有可用调色板列表

ggsci 提供了大量的调色板,以下是一些主要的:

调色板系列 离散函数 连续函数 描述
Nature scale_color_npg(), scale_fill_npg() - Nature Publishing Group 风格
Science scale_color_aaas(), scale_fill_aaas() - American Association for the Advancement of Science (Science期刊) 风格
NEJM scale_color_nejm(), scale_fill_nejm() - New England Journal of Medicine 风格
JCO scale_color_jco(), scale_fill_jco() - Journal of Clinical Oncology 风格
Lancet scale_color_lancet(), scale_fill_lancet() scale_color_lancet() The Lancet 风格
JAMA scale_color_jama(), scale_fill_jama() - Journal of the American Medical Association 风格
UCSCGB scale_color_ucscgb(), scale_fill_ucscgb() - UCSC Genome Browser 风格
D3 scale_color_d3(), scale_fill_d3() - D3.js Category10 调色板
IGV scale_color_igv(), scale_fill_igv() - Integrative Genomics Viewer 风格
AAV scale_color_aav(), scale_fill_aav() - AAV (Adeno-Associated Virus) 调色板
Base scale_color_base(), scale_fill_base() - R base graphics 的调色板
GSEA scale_color_gsea(), scale_fill_gsea() scale_color_gsea() Gene Set Enrichment Analysis 常用调色板
Nord scale_color_nord(), scale_fill_nord() - Nord 配色方案,适合深色背景
Cyclops scale_color_cyclops(), scale_fill_cyclops() - Cyclops 调色板,色盲友好

ggsci 是 R 数据可视化工具箱中一个不可或缺的包,它通过提供一套经过验证的、专业的调色板,极大地简化了为 ggplot2 图形选择配色的过程,让你的图表看起来更加美观、专业和易于理解。

使用流程:

  1. 安装并加载 ggsciggplot2
  2. 根据你的数据类型(离散或连续)和期望的风格(如 Nature, JCO 等),选择合适的 scale_*_pal_* 函数。
  3. 将该函数直接添加到你的 ggplot 对象中即可。
  4. 如果需要自定义,使用 _pal_...() 函数提取颜色向量,再用 scale_*_manual() 进行精细控制。
分享:
扫描分享到社交APP
上一篇
下一篇