RColorBrewer | 再多的配色也能轻松搞定!~(二)

本文介绍了R包RColorBrewer的使用,它提供了sequential、diverging和qualitative三种类型的配色方案,适用于各种数据可视化场景。通过示例展示了如何查看所有配色、选择特定配色以及在ggplot2绘图中应用配色。此外,还解答了当需要的颜色数量超过预设配色数时的解决方案,利用colorRampPalette函数生成更多颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

alt

1写在前面

之前介绍了使用ggsci包进行配色,颜值很高,但有时候你可能需要更多的颜色。
本期介绍一下RColorBrewer包,万金油包,几乎适用任何情况。😘

2用到的包

rm(list = ls())
library(tidyverse)
library(RColorBrewer)
library(patchwork)

3示例数据

本期就用大名鼎鼎的iris吧。

dat <- iris
alt

4查看所有配色

display.brewer.all()
alt

Note! 这个包里包含3种配色,sequential, diverging, 和qualitative。 🤩

sequential: Blues,BuGn, BuPu, GnBu, Greens, Greys, Oranges, OrRd, PuBu, PuBuGn, PuRd, Purples, RdPu, Reds, YlGn, YlGnBu, YlOrBr, YlOrRd。(颜色由渐变。) ↗️

Qualitative: Accent, Dark2, Paired, Pastel1, Pastel2, Set1, Set2, Set3。(颜色区分较大,适合分类变量,如分组变量等。) 🔠

Diverging: BrBG, PiYG, PRGn, PuOr, RdBu, RdGy, RdYlBu, RdYlGn, Spectral。(颜色由--,适合heatmap等。) ↘️ ➡️ ↗️

5详细查看

5.1 展示配色

熟悉了配色以后,你可能只想看一个配色方案,可以这样做:

display.brewer.pal(n = 8, name = 'Dark2')
alt

5.2 获取色号

brewer.pal(n = 8, name = "Dark2")
alt

6应用配色

这里我们以ggplot绘图为例。

6.1 初步绘图

bp <- ggplot(dat, aes(Species, Sepal.Length)) + 
geom_boxplot(aes(fill = Species)) +
theme_minimal() +
theme(legend.position = "top")


sp <- ggplot(dat, aes(Sepal.Length, Sepal.Width)) +
geom_point(aes(color = Species)) +
theme_minimal()+
theme(legend.position = "top")
bp + sp
alt

6.2 更改配色

这里我们以改变分组颜色为例,选用Dark2配色。

bp2 <- bp + scale_fill_brewer(palette = "Dark2")

sp2 <- sp + scale_color_brewer(palette = "Dark2")

bp2 + sp2
alt

6.3 base绘图中的应用

这里补充一下再base绘图时如何应用brewer.pal函数。

barplot(c(4,10,11, 7), col = brewer.pal(n = 4, name = "RdBu"))
alt

7颜色不够怎么办

Q: 细心的小伙伴可能发现了,这个配色最多的也才十几个,要是我需要的配色多于这个数怎么办呢?
A: ok~, 这里提供一下解决方案。

7.1 初步绘图

这里大家可以发现,用scale_color_brewer函数进行配色时,颜色是不够的,因为Set2只有8个配色,所以很多点都不显示了。

dat <- dat %>% 
mutate(., cat = rep(1:30, 5))

p1 <- ggplot(dat, aes(Sepal.Length, Sepal.Width)) +
geom_point(aes(color = factor(cat))) +
theme_bw()

p2 <- ggplot(dat, aes(Sepal.Length, Sepal.Width)) +
geom_point(aes(color = factor(cat))) +
theme_bw()+
scale_color_brewer(palette = "Set2")

p1 + p2
alt

7.2 更多颜色

在我们的示例数据中cat包含30个分类,所以我们至少要生成30个颜色才行,用到的函数是colorRampPalette

colourCount <-  length(unique(dat$cat))

ggplot(dat, aes(Sepal.Length, Sepal.Width)) +
geom_point(aes(color = factor(cat))) +
theme_bw()+
scale_color_manual(values = colorRampPalette(brewer.pal(8, "Set2"))(colourCount))
alt

最后祝大家早日不卷!~

点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

alt

本文由 mdnice 多平台发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值