一款 Python 神器搞定自动化图表配色

Python69

原文链接:https://mp.weixin.qq.com/s/lwvZ1SyhiOiWx2lP-Iou6Q
作者:朱小五

我们在利用Python进行数据可视化时,有着大量的高质量库可以用,比如: MatplotlibseabornPlotlyBokehggplot等等。但图表好不好看,配色占一半。如果没有良好的审美观,很容易做出来的东西辣眼睛......

所以想做好数据可视化,就要有合适的配色方案。除了可以借鉴参考配色网站的案例,也可以自己自定义一套配色方案。

一款 Python 神器搞定自动化图表配色

如何去自定义呢?

我倒是有一个想法,配色的美感需要培养,但在一开始可以在优秀的作品上寻找灵感,比如经典电影、海报、风景图、Logo等等,这些都是绝佳的参考。

自然风景的颜色往往令人惊艳,咱们不妨以风景图为例。下图是一副海上夕阳图,通过一番操作就提取到了一套配色方案(见图右)。

一款 Python 神器搞定自动化图表配色

那么,我们用Python能不能做到呢?

答案当然是可以,毕竟Python除了不能生孩子,什么都能做!

提取图片中的配色

在Python中对图片进行操作,最常用的两个模块就是PIL和opencv了。所以一开始我的方案是,用Python库打开图片,然后遍历像素颜色,最后按照色彩比例进行排序,即可得到该图片的配色方案。

一款 Python 神器搞定自动化图表配色

结果做到一半,我发现自己忽略了一件事。大家都知道,Python 是一门优雅的语言,简洁的语法,强大的功能。同时它还有拥有极其丰富的第三方库,这些库几乎都可以在github 或者 pypi上找到源码。

于是我搜了一下,确实有相关的库可以提取图片中的配色,那我们就不用重复造轮子了。

这个模块就是—— Haishoku,可以用于从图像中获取主色调和主要配色方案。

一款 Python 神器搞定自动化图表配色

其GitHub网址为: _ https://github.com/LanceGin/haishoku_

一款 Python 神器搞定自动化图表配色

具体用法,还是先安装

pip install haishoku

将前文提到的海上夕阳图,保存到本地并命名为 test.png

from haishoku.haishoku import Haishoku
image = 'test.png'
haishoku = Haishoku.loadHaishoku(image)

导入模块,运行代码会返回一个Haishoku实例,你可以通过实例属性 haishoku.dominanthaishoku.palette,从而直接获取到对应的主色调和配色方案。

主色调

首先,要怎么获取图片的主色调呢?

print(haishoku.dominant)

这返回了一个结构为 (R, G, B) 的元组,就是该图片的主色调。

一款 Python 神器搞定自动化图表配色

运行下面这行代码

Haishoku.showDominant(image)

则会打开一个临时文件,用来预览主色调的颜色。

一款 Python 神器搞定自动化图表配色

配色方案

#获取配色方案
pprint.pprint(haishoku.palette)

返回一个结构为:[(R, G, B), (R, G, B), ...] 最大长度为8的数组。

一款 Python 神器搞定自动化图表配色

这里使用了 pprint模块,对于这种多层嵌套的元组,正好可以美观地打印出来。

运行下面这行代码

Haishoku.showPalette(image)

则会打开一个临时文件,用来预览图片配色方案。(不会保存在本地)

一款 Python 神器搞定自动化图表配色

配色方案

就这样,只需几行代码就提取到图片中的配色方案,是不是很简单。

另外,Haishoku库从 v1.1.4版本后,支持从 url 中直接加载图像。

imagepath = 'https://-blog.csdn.cn/20190222215216318.png'    haishoku = Haishoku.loadHaishoku(imagepath)

配色方案与可视化

通过前面的操作,我们就提取到了合适的配色,那么就实战一下吧。

经典电影、海报、风景图、Logo都是绝佳的参考对象。

一款 Python 神器搞定自动化图表配色

所以这次,我选择了Google的Logo,并提取到它的配色方案。

imagepath = 'google.png'

haishoku = Haishoku.loadHaishoku(imagepath)

pprint.pprint(haishoku.palette)

Haishoku.showPalette(imagepath)

一款 Python 神器搞定自动化图表配色

一款 Python 神器搞定自动化图表配色

那么,这套配色方案应用到了数据可视化中,会是怎么样呢??

用Python绘制一个饼图试试看

一款 Python 神器搞定自动化图表配色

感觉还不错,这套配色方案我要收藏起来。如果大家觉得本文还不错,记得给个一键三连!

本文的代码和文件打包:https://wwe.lanzoui.com/iepThvcl9zi

其实一开始,自己自定义提取图片配色也不是一点用没有,我还随带用OpenCV制作了一个拾色器。

一款 Python 神器搞定自动化图表配色

也就是说,Python运行时只需点击,就可以获取当前图片位置的颜色。

如果大家感兴趣的话,就右下角点个赞吧,本文 点赞超过30👍,火速更新!!!

文章最后给大家介绍三个我自己写的在线文档:

第一个文档PyCharm 中文指南 1.0 文档

花了两个多月的时间,整理了 100 个 PyCharm 的使用技巧,为了让新手能够直接上手,我花了很多的时间录制了上百张 GIF 动图,有兴趣的前往在线文档阅读。

一款 Python 神器搞定自动化图表配色

第二个文档PyCharm 黑魔法指南 1.0 文档

系统收录各种 Python 冷门知识,Python Shell 的多样玩法,令人疯狂的 Python 炫技操作,Python 的超详细进阶知识解读,非常实用的 Python 开发技巧等。

一款 Python 神器搞定自动化图表配色

第三个文档Python 中文指南 1.0 文档

花了三个月时间写的一本 适合零基础入门 Python 的全中文教程,搭配大量的代码案例,让初学者对 代码的运作效果有一个直观感受,教程既有深度又有广度,每篇文章都会标内容的难度,是基础还是进阶的,可供读者进行选择,是一本难得的 Python 中文电子教程。

一款 Python 神器搞定自动化图表配色

Original: https://www.cnblogs.com/wongbingming/p/15408749.html
Author: 王一白
Title: 一款 Python 神器搞定自动化图表配色