0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python 可视化如何配色

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-10-30 15:43 次阅读

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

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

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

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

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

提取图片中的配色

在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.dominanthaishoku.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)

8C81F933-7AF8-441f-A0F5-EAA900052BFE.png

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2484

    浏览量

    46530
  • 源码
    +关注

    关注

    8

    文章

    573

    浏览量

    28585
  • 可视化
    +关注

    关注

    1

    文章

    1020

    浏览量

    20554
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83466
收藏 人收藏

    评论

    相关推荐

    何谓单片机编程的可视化?

    何谓单片机编程的可视化?可视化编程就是提供给用户可视化的器件模块配置界面使用户在不用关心具体器件工作原理和设置的情况下直接生成所要配置的器件初始代码及驱动程序,从而直接进行单片机应用
    发表于 07-08 16:53

    可视化MES系统软件

    是关键部分,可视化管理可帮助企业更直观的挖掘隐藏的数据并有效管理企业。“制造物联”是MES系统软件更高阶段的必然表现形式。“制造物联”与MES系统软件的侧重:(1)MES侧重生产业务管理,制造物联更关注
    发表于 11-30 19:55

    数据可视化Python-matplotlib概述

    数据可视化(二):Python-matplotlib
    发表于 07-22 14:58

    如何把AD中非可视化区域物件移到可视化区域?

    AD中非可视化区域物件怎么移到可视化区域???
    发表于 09-10 05:36

    python数据可视化的方法和代码

    Python数据可视化汇总
    发表于 10-14 14:59

    基于STM的可视化门禁系统

    基于STM的可视化门禁系统
    发表于 03-07 09:49

    基于stm的可视化门禁系统

    基于stm的可视化门禁系统
    发表于 03-11 09:23

    Python数据可视化专家的七个秘密

    分享 Python数据可视化专家的七个秘密
    发表于 05-15 06:43

    python数据可视化之画折线图

    python数据可视化之画折线图,散点图
    发表于 05-27 08:09

    Python数据可视化

    Python数据可视化:网易云音乐歌单
    发表于 07-19 08:30

    三维可视化的应用和优势

    ,为此三维可视化运维系统登场了。  三维可视化的应用  宏观场景可视化:在特定的环境中对随着时间推移而不断变化的目标实体进行检测,可以直观、灵活、逼真的展示所处区域的情景和环境,可以快速掌握目标区域
    发表于 12-02 11:52

    常见的几种可视化介绍

    说说常见的几种可视化一、信息可视化信息可视化就是对抽象数据进行直观视觉呈现的研究,抽象数据既包含数值数据,也包含非数值数据如文本信息、地图信息等,它们可通过利用图形图像处理、人机交互、人工智能的技术
    发表于 07-12 07:49

    经验分享|BI数据可视化报表布局——容器

    容器功能是一种用于数据可视化图表排版的功能,主要作用对图表进行有效的布局调整,或者用于巧妙在同一地方安排多个不同类型的数据可视化图表,供使用者点击切换浏览。目前,在奥威BI软件上一同有两类容器功能
    发表于 03-15 17:10

    Python拉勾网数据采集与可视化

    本文是先采集拉勾网上面的数据,采集的是Python岗位的数据,然后用Python进行可视化。主要涉及的是爬虫&数据可视化的知识。
    的头像 发表于 03-13 14:18 3015次阅读
    <b class='flag-5'>Python</b>拉勾网数据采集与<b class='flag-5'>可视化</b>

    Python数据可视化编程实战

    Python数据可视化编程实战资料免费下载。
    发表于 06-01 14:37 29次下载