一款 Python 神器解决自动化图表配色
Posted 不想秃头的晨晨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一款 Python 神器解决自动化图表配色相关的知识,希望对你有一定的参考价值。
一款 Python 神器解决自动化图表配色
我们在利用Python进行数据可视化时,有着大量的高质量库可以用,比如:
Matplotlib
、
seaborn
、
Plotly
、
Bokeh
、
ggplot
等等。但图表好不好看,配色占一半。如果没有良好的审美观,很容易做出来的东西辣眼睛……
所以想做好数据可视化,就要有合适的配色方案。除了可以借鉴参考配色网站的案例,也可以自己自定义一套配色方案。
如何去自定义呢?
配色的美感需要培养,但在一开始可以在优秀的作品上寻找灵感,比如经典电影、海报、风景图、Logo等等,这些都是绝佳的参考。
自然风景的颜色往往令人惊艳,咱们不妨以风景图为例。下图是一副海上夕阳图,通过一番操作就提取到了一套配色方案
那么,我们用Python能不能做到呢?
答案当然是可以,毕竟Python除了不能生孩子,什么都能做!
1.提取图片中的配色
在Python中对图片进行操作,最常用的两个模块就是PIL
和opencv
了。所以一开始我的方案是,用Python库打开图片,然后遍历像素颜色,最后按照色彩比例进行排序,即可得到该图片的配色方案。
结果做到一半,忽略了一件事。大家都知道,Python 是一门优雅的语言,简洁的语法,强大的功能。同时它还有拥有极其丰富的第三方库,这些库几乎都可以在github 或者 pypi上找到源码。
于是我搜了一下,确实有相关的库可以提取图片中的配色,那我们就不用重复造轮子了。
这个模块就是——Haishoku
,可以用于从图像中获取主色调和主要配色方案。
具体用法,还是先安装
pip install haishoku
将前文提到的海上夕阳图,保存到本地并命名为test.png
。
from haishoku.haishoku import Haishoku
image = 'test.png'
haishoku = Haishoku.loadHaishoku(image)
导入模块,运行代码会返回一个Haishoku实例,你可以通过实例属性haishoku.dominant
和 haishoku.palette
,从而直接获取到对应的主色调和配色方案。
1.1主色调
首先,要怎么获取图片的主色调呢?
print(haishoku.dominant)
这返回了一个结构为 (R, G, B) 的元组,就是该图片的主色调。
运行下面这行代码
Haishoku.showDominant(image)
则会打开一个临时文件,用来预览主色调的颜色。
主色调(最多的颜色)
1.2配色方案
#获取配色方案
pprint.pprint(haishoku.palette)
返回一个结构为:[(R, G, B), (R, G, B), …] 最大长度为8的数组。
这里使用了pprint
模块,对于这种多层嵌套的元组,正好可以美观地打印出来。
运行下面这行代码
Haishoku.showPalette(image)
则会打开一个临时文件,用来预览图片配色方案。(不会保存在本地)
就这样,只需几行代码就提取到图片中的配色方案,是不是很简单。
2.配色方案与可视化
通过前面的操作,我们就提取到了合适的配色,那么就实战一下吧。
经典电影、海报、风景图、Logo都是绝佳的参考对象。
所以这次,我选择了Google的Logo,并提取到它的配色方案。
imagepath = 'google.png'
haishoku = Haishoku.loadHaishoku(imagepath)
pprint.pprint(haishoku.palette)
Haishoku.showPalette(imagepath)
那么,这套配色方案应用到了数据可视化中,会是怎么样呢??
用Python绘制一个饼图试试看
感觉还不错,这套配色方案我要收藏起来。
最后,感谢您的阅读。您的每个点赞、留言、分享都是对我们最大的鼓励,笔芯~
如有疑问,欢迎在评论区一起讨论!
以上是关于一款 Python 神器解决自动化图表配色的主要内容,如果未能解决你的问题,请参考以下文章