查看原文
其他

听说你的图形配色辣眼睛?这篇文章可以简单入门

段湘杰 R语言统计与绘图 2023-03-03

ggplot2绘图系统是目前主流绘图系统,有众多的配色R包支持,绘制出来的图形优雅漂亮,在前面我们也介绍过很多ggplot2图形的配色用法。

最强配色R包,1个包,2100来个调色板!

ggplot2图形配色包,提取知名科技公司的主题颜色

ggsci-按照杂志要求进行文章图片配色

ggplot2图形常见的几种配色方法

我们今天来介绍下可以用于传统绘图系统的一些配色R包。

1. 绘制个简单图形

直接画个简单图形。

barplot(1:10)

如上图所示,图形色彩平平无奇。

2. 调整函数参数

首先调整上面的直方图的颜色,可以调整函数参数来调整图形颜色。

barplot()中调整颜色的参数为col,col参数支持数字、颜色值等参数。

layout(matrix(c(1,2,3,4), 22, byrow = TRUE))
barplot(1:10, col = "red")
barplot(1:10, col = c("red","blue"))
barplot(1:10, col = c(1:5))
barplot(1:10, col = c(1:10))

上面的图形色彩不能说好看吧,有点辣眼睛。

下面来进阶下图形配色。

3. 默认调色板

base R中也有多种用于创建连续型颜色向量的函数,包括rainbow()heat.colors()terrain.colors()topo.colors()以及cm.colors()

layout(matrix(c(1,2,3,4), 22, byrow = TRUE))
barplot(1:10, col=rainbow(10))
barplot(1:10, col=heat.colors(10))
barplot(1:10, col=terrain.colors(10))
barplot(1:10, col=topo.colors(10))

4. 灰白渐变色

多阶灰度色可使用基础安装所自带的gray() 函数生成。这时要通过一个元素值为0 和1 之间的向量来指定各颜色的灰度。gray(0:10/10) 将生成10 阶灰度色。

barplot(1:10, col = gray(0:10/10))
barplot(1:10, col = gray(0:10/20))
barplot(1:10, col = gray(10:0/10))
barplot(1:10, col = gray(10:0/20))

除了使用默认的配色外,还有很多的配色R包也支持传统绘图系统,下面来学习几个常用的R包。

5. RColorBrewer 包

使用函数brewer.pal(n, name) 来创建一个颜色值的向量。

library("RColorBrewer")
barplot(1:10, col = brewer.pal(n = 10, name = "BrBG"))
barplot(1:10, col = brewer.pal(n = 10, name = "RdGy"))
barplot(1:10, col = brewer.pal(n = 10, name = "PuOr"))
barplot(1:10, col = brewer.pal(n = 10, name = "PiYG"))

6. viridis 包

viridis 包提供了matplotlib 中默认的色带。使用此包中的色带来制作漂亮的图表,可以更好地展示数据,更容易被具有色盲的人阅读,并支持灰度打印。

library("viridis")
barplot(1:10, col = viridis(10))
barplot(1:10, col = magma(10))
barplot(1:10, col = inferno(10))
barplot(1:10, col = plasma(10))

7. ggsci 包

ggsci 包是ggplot2 的扩展包,主要对ggplot 图形提供设定好的配色方案,但同时该包中的配色方案也能够被base 或lattice 等其它绘图系统调用。

library(ggsci)
barplot(1:10, col = pal_aaas()(10))
barplot(1:10, col = pal_d3()(10))
barplot(1:10, col = pal_npg()(10))
barplot(1:10, col = pal_igv()(10))

8. wesanderson 包

这个包中包含16 种色条颜色,他们都是从Wes Anderson 的电影里面选取的 颜色。

library(wesanderson)
barplot(1:10, col = wes_palette("Zissou1"10, type = "continuous"))
barplot(1:10, col = wes_palette("Rushmore1"10, type = "continuous"))
barplot(1:10, col = wes_palette("Royal1"10, type = "continuous"))
barplot(1:10, col = wes_palette("IsleofDogs2"10, type = "continuous"))

好了,今天的内容就学习到这里,如果没有特别好的传统图形配色包,可以考虑下上面的配色R包。

参考资料来自以上R包的帮助文件。


关注下方公众号,分享更多更好玩的R语言知识。

如果需要进群,请在菜单栏处添加作者微信,添加入群。

点个在看,SCI马上发表。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存