一款 Python 神器解决自动化图表配色

  • 1.提取图片中的配色
    • 1.1主色调
    • 1.2配色方案
  • 2.配色方案与可视化

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

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

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

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


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

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

1.提取图片中的配色

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

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

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

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

具体用法,还是先安装

pip install haishoku

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

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

导入模块,运行代码会返回一个Haishoku实例,你可以通过实例属性haishoku.dominanthaishoku.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 神器解决自动化图表配色相关推荐

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

    原文链接:https://mp.weixin.qq.com/s/lwvZ1SyhiOiWx2lP-Iou6Q 作者:朱小五 我们在利用Python进行数据可视化时,有着大量的高质量库可以用,比如:Ma ...

  2. g++ 安装python_卧槽,又一款Python神器

    写Python代码最头疼的两件事是什么? 我总结了两点 1.Windows 平台安装第三方包经常失败的问题,还记得第一次安装mysql依赖包时的那个场景吗?怎么都装不上. 2.虚拟环境切换的问题,如果 ...

  3. 卧槽,又一款Python神器

    写Python代码最头疼的两件事是什么?我总结了两点 1.Windows 平台安装第三方包经常失败的问题,还记得第一次安装mysql依赖包时的那个场景吗?怎么都装不上. 2.虚拟环境切换的问题,如果我 ...

  4. 有了这款Python神器,新手也会调试代码!

    大家好,我是黄同学

  5. python可视化案例书籍推荐_这5款Python可视化神器,总有一款适合你!

    我们都知道视觉是人们很重要的一种感官,而Python中可视化,在数据相关的研发中也起到"一木支危楼"的作用.如果从直接查看离线存储在各类数据库中杂乱无章的数据,会让人瞬间感到崩溃且 ...

  6. 推荐一款Python开源库,技术人必备的造数据神器!

    1. 背景 在软件需求.开发.测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,要么需要手动制造一些数据.由于现在的业务系统数据多种多样,千变万化.在手动制造数据的 ...

  7. python的编程工具spider_7款Python开发神器,拿走不谢

    在人工智能开启的时代,Python作为人工智能的首选语言,前景可以预见.因此学习Python的人越来越多.今天,快快小编准备给大家介绍7款Python开发神器,欢迎收藏转发! 1.Micro Pyth ...

  8. 一款Python实用神器,5 行 Python 代码 实现一键批量扣图

    今天给大家分享一款Python装逼实用神器. 在日常生活或者工作中,经常会遇到想将某张照片中的人物抠出来,然后拼接到其他图片上去.专业点的人可以使用 PhotoShop 的"魔棒" ...

  9. python必备神器_这5款Python可视化神器,总有一款适合你!

    我们都知道视觉是人们很重要的一种感官,而Python中可视化,在数据相关的研发中也起到"一木支危楼 "的作用.如果从直接查看离线存储在各类数据库中杂乱无章的数据,会让人瞬间感到崩溃 ...

最新文章

  1. 使用Newtonsoft.Json
  2. 高翔Slambook第七讲代码解读(特征点提取)
  3. git clone一个github上的仓库非常缓慢 和 github网页打不开
  4. php怎么把文字改成黑色,微信如何调成黑色模式?
  5. RocketMQ的存储之消息的同步、异步刷盘
  6. apple tv 开发_如何跨多台Apple TV同步Apple TV的主屏幕
  7. 基于IC设计的实用ISP介绍
  8. 聊天系统服务器端类图,课程设计-简单聊天室JAVA课程设计.doc
  9. 基于STM32和ESP8266的智能灌溉系统【土壤湿度监测继电器OLED显示WIFI控制器APP水泵】
  10. 小程序源码:微信零钱模拟器
  11. hsqldb user lacks privilege or object not found
  12. Laravel中使用dingo
  13. Mac远程控制软件有哪些?Macos好用的远程桌面连接软件推荐
  14. Elasticsearch许可证过期导致ES用不了的问题
  15. PHP防花生日记官网源码【前后端分离】源码
  16. 这有一套完整的微信公众号代运营方案
  17. 亚马逊真的是让我又爱又恨
  18. 世界风情园成北京最大废墟
  19. 团队开发中,xshell共享配置文件
  20. 真的来了:ArcGIS Pro2.5可以安装使用了-安装教程(附安装包下载)

热门文章

  1. python怎么使用别人的代码_利用Python查看微信共同好友功能的实现代码
  2. matlab绘制正态分布曲线(高斯隶属度函数)
  3. 【可视化】Power Map实现大数据可视化操作
  4. 如何查看期刊论文的分类及分级
  5. CSS 网页样式大全
  6. C语言printf()输出整数的格式
  7. python代码的注释只有一种方式那就是使用井字符号_从一个按钮点击得到一个井字塔克托移动(在Python和Tkinter)...
  8. C++ 输出前K大的数
  9. 软件体系结构的设计与实现鱼骨图
  10. WTO再发出警告!世界经济市场一片混乱,中国制造迎来最大契机!