画一个印象派的蝙蝠吧
老早老早之前看到batman logo方程,我就试着用ggplot2来画。当时写了一篇博客文:https://guangchuangyu.github.io/2011/08/the-batman-equation/
在HKU有个teaching的课,课上会有两次presentation,一次5分钟,一次10分钟。5分钟那次我就去present怎么画batman logo,轻松有趣即视感有没有!
首先有这么个方程,它可以画出batman:
6个方程的乘积,拆分开来如下,方程的解就是这6个子方程中任意一个为0。每个子方程都是一个线条的片段,我将用不同颜色来展示。
做为好色之徒,我们首先来6个颜色:
定义方程1,取值范围通过开方要求正数这一限制来获得。
它画出来是这样子的:
再来第二段方程:
它画出来下面的裙摆:
再来第三个方程:
以此类推,再写就有点罗嗦了,一段段加上去,最后画出来是这样子的。
最后来一段稍长点的代码,上面的logo,其实是画一堆点,那么我们可以对点进行随机采样,大小、颜色和透明度都随机。然后再给加个背景,背景点少一些,点大一些,透明度也小一些,这些也是随机的。这样我们可以看到一些点组成batman logo,在背景点中凸显出来。
就像这样,因为是随机的,所以每次跑这个代码,出来的图还会微有不同。这分分钟是要测色盲的节奏啊。
当时课上讲的slides,我是放上网的,点击阅读原文,电梯直达。最近我的幻灯片又被歪果仁发现了:
Bruce Wayne: It's not who I am underneath, but what I do that defines me.
如果你看过《130岁了,祝你生快》这篇文章的话,你可能会被高度的抽象水平所折服,文章后面也做了一个预告:
可以把蝙蝠画成多边形,这样外围可以有个颜色,内部可以填充个颜色,然后就可以用蝙蝠侠的飞镖来画散点了,可以随意映射大小,可以随意旋转,嗯,Bruce Wayne向你扔来一大波飞镖。
最后还是那句话:
如果以后再去罪恶之城chicago的话,我就写一个
geom_batman
图层。
往期精彩