查看原文
其他

食色性也

Y叔 YuLabSMU 2022-09-20

小丫的这篇文章《我把Nature的Figure画成了蒙娜丽莎》,让我想起了一年多以前写的:《食色性也》!于是重新推送,这篇文章教会大家使用一个R包,去提取图片中的颜色,用于绘图,它当然也可以应用于提取名画的配色。小丫的文章展示了非常好的应用场景,而下面我的这篇文章,告诉你用R一条龙实现!没错,以后我们发文章也要文艺犯十足!


画图配色并不是一件简单的事情,好的配色让人眼前一亮,虽然R有很多配色方案,做为ggplot2的爱好者,ggthemes也提供了很多主题,内置了很多配色方案,还有一些其它的包,比如ggtech,包含了一些科技公司比如facebook, twitter, google的典型配色方案,甚至于ggsci,提供了nature, lancet的配色方案。

但这些远远不够!
            远远不够!
                    不够!

看到一张图片让我眼前一亮,我想用它的配色方案呢!我想拿最新电影的海报的配色来装个逼呢!画图时不想用现成的配色,想要另类一些,我想用一些大自然的风格,比如求偶期间各种鸟类的羽毛颜色来画!

这些在R里面,都是可以的,可以的,可以的…

下面隆重推荐一个叫rPlotter的R包,https://github.com/woobe/rPlotter,可以非常方便地在图片中抽提颜色。其实实现起来也容易,用EBImage把图片读进去,存成一个RGB的三维矩阵,通过kmeans聚类,把中心点颜色报出来就可以了。若干年前我写过用kmeans压缩图片,用的就是把颜色填充成中心点颜色,稍微把之前的代码改一改,也能实现这个颜色抽提的功能。

实例演示,我google了一张spider的图片,把颜色提出来,拿来画barplot:

pal = extract_colours("http://i1.mirror.co.uk/incoming/article8566552.ece/ALTERNATES/s615b/Jumping-spider.jpg")
barplot(1:5, col=pal)

再来一张homer simpson的图片:

pal2 = extract_colours("https://images.complex.com/complex/image/upload/t_article_image/kissing-Homer-Simpson-The-Simpsons-Marge-Simpson-_578180-20_zx1jpk.jpg", 7)
barplot(1:7, col=pal2)

之前说的各种场景,都是可以实现的,最新海报配色,你可以有!你想画图用美队来配色,可以有!拿蜘蛛小鸟来配色,可以有!甚至于拿肌肉男的肉色也可以的。下次发文章在愁配色的时候,何不搜索图片,看看有什么图片顺眼的,就拿来用了。

即使你不会用R画图,你也可以把这配色方案应该于M$的office中,word/excel/powerpoint都是支持自定义颜色主题的,请自行搜索 “office 自定义主题颜色”。


我就想拿维密的照片来给图配色,上班时间看维密,被发现了就说我是在给论文图片寻找配色方案!并且run一下代码,装逼演示一下,让对方目瞪口呆,并且无话可说!!!

R包介绍

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

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