美文网首页
如何拯救我的审美——图片配色

如何拯救我的审美——图片配色

作者: 鹿无为 | 来源:发表于2020-04-10 09:32 被阅读0次

写在前面的话

作为一个理科男,也许我的科研能力达不到理工男的平均水准。但你要是说比审美,那我想说在座的各位都是弟弟。每当导师让我画图时,红黄绿三原色都是我的第一选择。于是我画的图往往就成了如下样式:

image

有时候我们不想使用全部颜色,只想要使用某个配色方案中的三四种颜色怎么办呢?使用命令 brewer.pal 即可,如我们输入brewer.pal(11,'BrBG') ,结果如下:

image

我们可以看到 RColorBrewer 包中的所有颜色都是以十六进制颜色格式存储的,每一个颜色都对应有一个十六进制表示。

此外, RColorBrewer 包中某一种配色的种类是有限制的,比如 seq 类型配色都只有9个颜色。不过,好在我们可以使用 colorRampPalette 函数创建颜色梯度。比如:

mycolor <- brewer.pal(9,'YlOrRd') # 生成某个颜色类型的9种颜色
pal <- colorRampPalette(mycolor) # 生成颜色梯度
mycolors <- pal(24) # 设置生成24个梯度
# 上面两行代码等价于 mycolors <- colorRampPalette(mycolor)(24)

barplot(1:24,col = mycolors)

生成的结果如下:


imageimage

总结

  • display.brewer.all() 调用所有的配色方案(图示)
  • brewer.pal.info 展示所有的配色方案(文字)
  • display.brewer.pal(num,clor_name) 如:display.brewer.pal(11,'BrBG')
  • 使用 colorRampPalette 函数创建颜色梯度

rPlotter配色——所见即所得

第一次知道这个包,来自于Y叔那篇“食色性也”的文章。虽然上述的 RColorBrewer 包给了我们很多优秀的配色,但是很多时候我们偶然看到了一个图片、一个海报、一帧电影画面,想要利用其中的配色该怎么办呢?你可能会觉得这怎么可能?但是 rPlotter 包让不可能成为可能。

它是怎么实现的呢?主要是利用 EBImage 包将图片读入,并存储为一个RGB的三维矩阵。然后利用k-means
聚类,把中心点颜色报出来即可。下面简单的介绍一下使用方法,并给出几个例子:
先随机找个图,比如电影《你的名字》海报:
[图片上传失败...(image-5a79c5-1586482322683)]

# 加载包
library('rPlotter')

# 将图片链接存入,转换为三局矩阵,并设置所需颜色的
pal = extract_colours("http://img5.mtime.cn/CMS/News/2017/09/28/095202.11304096_620X620.jpg")
barplot(1:5, col=pal)

结果如下,明显比我之前的红黄蓝好多了…… 以后在办公室看动画,再也不怕被训了,可以大声的告诉导师,我在为figure选配色!!!

声明一下,如果因此被老板训,我不负责~

imageimage

安装

rPlotter 包的安装有点麻烦,下面是官方推荐的安装流程。我试了试这个安装流程,虽然中间出现了几个问题,但是按照错误提示,最后还是可以成功安装的。

## CRAN Packages
install.packages(c("ggplot2", "stringr", "reshape2", "dichromat"))

## EBImage
source("http://bioconductor.org/biocLite.R")
biocLite("EBImage")

## Packages on GitHub
library(devtools)
install_github("ramnathv/rblocks")

## And finally ...
install_github("woobe/rPlotter")

相关文章

网友评论

      本文标题:如何拯救我的审美——图片配色

      本文链接:https://www.haomeiwen.com/subject/eggzphtx.html