续上篇:可视化配色方案自由啦 (R版)
本文分享一个Python快速提取任何图片配色方案,运用于可视化配色的工具:Haishoku;
Haishoku 是一个用来获取图片主色调和主要配色方案的python库,依赖于python3
和pillow
。
Haishoku安装
pip3 install haishoku
使用案例
抓取以下《生活多美好》电影海报主题色,再次安利这部电影,小编从里面顿悟的一点点正能量是:好的风景何必远方,用心领会,咫尺之间皆是~
- 主题色提取
from haishoku.haishoku import Haishoku
image='./life_is_b.png'
haishoku = Haishoku.loadHaishoku(image)
haishoku.palette #palette函数输出配色色号
palette
函数输出配色色号
[(0.77, (244, 247, 244)),
(0.09, (116, 165, 96)),
(0.06, (193, 214, 168)),
(0.03, (148, 184, 124)),
(0.02, (165, 196, 134)),
(0.02, (86, 144, 81)),
(0.01, (54, 113, 65)),
(0.0, (184, 185, 148))]
showPalette
函数预览上面提取出的配色~
haishoku.showPalette(image)
会输出以上图片,但是不会保存 。
- 主题色运用于Matplotlib
Matplotlib详细教程👉Matplotlib 1.4W+字教程,以上颜色需要简单转化一下,才可以运用于Python可视化,
import matplotlib.pyplot as plt
rgb_list = [[i[1][0] / 255, i[1][1] / 255, i[1][2] / 255]
for i in haishoku.palette] #色号简单转化为matplotlib可用的0~1之间RGB色号
plt.figure(dpi=120)
plt.style.use('bmh')
plt.bar(range(2, 10), range(2, 10), color=rgb_list) #传入Haishoku提取的颜色号
plt.title('Colored with Haishoku', size=10)
plt.show()
- 主题色运用于Seaborn
Seaborn详细教程👉Matplotlib太臃肿,试试Seaborn
import seaborn as sns
import pandas as pd
tips = pd.read_csv('./seaborn-data-master/tips.csv')
plt.figure(dpi=120)
plt.style.use('bmh')
sns.boxplot(x="day",
y="total_bill",
hue="smoker",
palette=[rgb_list[3], rgb_list[6]],#传入Haishoku提取的颜色号
data=tips)
sns.despine(offset=10, trim=True)