我们在使用Python进行数据可视化的时候,有大量的优质库可以使用,比如:Matplotlib、seaborn、Plotly、Bokeh、ggplot等。但是图表好看不好看,关键在于配色方案占了一半。如果没有好的审美,很容易做出让人眼前一亮的东西……所以要想做好数据可视化,就必须要有合适的配色方案。除了参考参考配色网站的案例,你也可以自己定制一套配色方案。如何定制?我确实有一个想法,配色的审美需要培养,但一开始,你可以从优秀的作品中找到灵感,比如经典电影、海报、风景、Logo等,这些都是很好的参考。自然风光的色彩往往令人惊叹,我们以风景图为例。下图是海上日落的照片。经过一些操作,提取出一组配色方案(见右图)。那么,我们可以用Python来做吗?答案当然是肯定的,毕竟Python除了生孩子什么都能做!提取图片中的配色,用Python操作图片。最常用的两个模块是PIL和opencv。所以一开始我的计划是用Python库打开图片,然后遍历像素颜色,最后按照颜色比例排序得到图片的配色方案。原来,进行到一半,我发现自己忽略了一件事。大家都知道Python是一门优雅的语言,语法简洁,功能强大。同时,它还有极其丰富的第三方库,几乎都可以在github或者pypi上找到。于是搜索了一下,确实有相关的库可以提取图片中的配色,这样我们就不用重新造轮子了。这个模块是-Haishoku,可以用来从图像中获取主色和主配色方案。其GitHub网址为:https://github.com/LanceGin/h...具体使用方法,先安装pipinstallhaishoku,将上面提到的海上日落图片保存到本地,命名为test.png。fromhaishoku.haishokuimportHaishokuimage='test.png'haishoku=Haishoku.loadHaishoku(image)导入模块,运行代码返回一个Haishoku实例,可以直接获取对应的实例属性haishoku.dominant和haishoku.palettePrimarycolors和配色方案。主色首先,如何获取图片的主色?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版本开始支持直接从urls加载图片。imagepath='https://img-blog.csdnimg.cn/20190222215216318.png'haishoku=Haishoku.loadHaishoku(imagepath)配色方案和可视化通过前面的操作,我们已经提取出了合适的颜色,下面来练习一下。经典电影、海报、风景、标志都是极好的参考对象。所以这一次,我选择了谷歌标志并提取了它的配色方案。imagepath='google.png'haishoku=Haishoku.loadHaishoku(imagepath)pprint.pprint(haishoku.palette)Haishoku.showPalette(imagepath)那么,如果将这种配色方案应用到数据可视化中,会发生什么呢??这次,我使用刚拿到的谷歌配色方案,尝试用Python画一个圆图。感觉很好。我想收藏这个配色方案。以上就是本次分享的全部内容。觉得文章还不错的话,请关注公众号:Python编程学习圈,每日干货分享,发送“J”还能领取大量学习资料。或者去编程学习网了解更多编程技术知识。
