咱们在利用 Python 进行数据可视化时,有着大量的高质量库能够用,比方:Matplotlib、seaborn、Plotly、Bokeh、ggplot等等。但图表好不好看,配色占一半。如果没有良好的审美观,很容易做进去的货色辣眼睛……
所以想做好数据可视化,就要有适合的配色计划。除了能够借鉴参考配色网站的案例,也能够本人自定义一套配色计划。
如何去自定义呢?
我倒是有一个想法,配色的美感须要造就,但在一开始能够在优良的作品上寻找灵感,比方经典电影、海报、风景图、Logo 等等,这些都是绝佳的参考。
自然风景的色彩往往令人惊艳,咱们无妨以风景图为例。下图是一副海上夕阳图,通过一番操作就提取到了一套配色计划(见图右)。
那么,咱们用 Python 能不能做到呢?
答案当然是能够,毕竟 Python 除了不能生孩子,什么都能做!
提取图片中的配色
在 Python 中对图片进行操作,最罕用的两个模块就是 PIL 和 opencv 了。所以一开始我的计划是,用 Python 库关上图片,而后遍历像素色彩,最初依照色调比例进行排序,即可失去该图片的配色计划。
后果做到一半,我发现自己疏忽了一件事。大家都晓得,Python 是一门优雅的语言,简洁的语法,弱小的性能。同时它还有领有极其丰富的第三方库,这些库简直都能够在 github 或者 pypi 上找到源码。
于是我搜了一下,的确有相干的库能够提取图片中的配色,那咱们就不必反复造轮子了。
这个模块就是——Haishoku,能够用于从图像中获取主色调和次要配色计划。
其 GitHub 网址为:https://github.com/LanceGin/h…
具体用法,还是先装置
pip install haishoku
将前文提到的海上夕阳图,保留到本地并命名为test.png
。
from haishoku.haishoku import Haishoku
image = 'test.png'
haishoku = Haishoku.loadHaishoku(image)
导入模块,运行代码会返回一个 Haishoku 实例,你能够通过实例属性haishoku.dominant
和 haishoku.palette
,从而间接获取到对应的主色调和配色计划。
主色调
首先,要怎么获取图片的主色调呢?
print(haishoku.dominant)
这返回了一个构造为 (R, G, B) 的元组,就是该图片的主色调。
运行上面这行代码
Haishoku.showDominant(image)
则会关上一个临时文件,用来预览主色调的色彩。
主色调(最多的色彩)
配色计划
# 获取配色计划
pprint.pprint(haishoku.palette)
返回一个构造为:[(R, G, B), (R, G, B), …] 最大长度为 8 的数组。
这里应用了 pprint
模块,对于这种多层嵌套的元组,正好能够好看地打印进去。
运行上面这行代码
Haishoku.showPalette(image)
则会关上一个临时文件,用来预览图片配色计划。(不会保留在本地)
配色计划
就这样,只需几行代码就提取到图片中的配色计划,是不是很简略。
另外,Haishoku 库从 v1.1.4
版本后,反对从 url 中间接加载图像。
imagepath = 'https://img-blog.csdnimg.cn/20190222215216318.png'
haishoku = Haishoku.loadHaishoku(imagepath)
配色计划与可视化
通过后面的操作,咱们就提取到了适合的配色,那么就实战一下吧。
经典电影、海报、风景图、Logo 都是绝佳的参考对象。
所以这次,我抉择了 Google 的 Logo,并提取到它的配色计划。
imagepath = 'google.png'
haishoku = Haishoku.loadHaishoku(imagepath)
pprint.pprint(haishoku.palette)
Haishoku.showPalette(imagepath)
那么,这套配色计划利用到了数据可视化中,会是怎么样呢??
这次用方才失去的 Google 配色,Python 绘制一个环形图试试看
感觉还不错,这套配色计划我要珍藏起来。
以上就是本次分享的所有内容,如果你感觉文章还不错,欢送关注公众号:Python 编程学习圈,每日干货分享,发送“J”还可支付大量学习材料。或是返回编程学习网,理解更多编程技术常识。