相见恨晚的Python可视化配色工具

大家好,我是辰哥~

点击下方名片关注和星标『Python研究者』!

👆点击关注|设为星标|干货速递👆


  • 有小伙伴说python可视化自带颜色很丑,那您一定是没遇到palettable,palettable是一个纯python写的颜色条(Colormap)库,汇集了大量知名可视化软件的颜色条(比如Tableau色系,matplotlib部分色系等等),共有颜色条(Colormap)1587类,可使用的单颜色数万种,本文详细介绍palettable如何使用

  • 小编已经将palettable的1587种Colormap精心整理成为“51页高清pdf”文件,不想看长文的直接滑到文末获取~f000d999c41a3658076d9a5fc7d43020.gif


1、palettable快速安装

pip install palettable -i https://pypi.tuna.tsinghua.edu.cn/simple

2、palettable颜色条(Colormap)快速使用

导入palettable包

import palettable
from palettable.cartocolors.qualitative import Bold_9

#为了描述方便,此处直接倒入palettable.cartocolors.qualitative大类下的Bold_9小类,
#实际使用时可直接用palettable.cartocolors.qualitative.Bold_9

palettable重要属性-可视化色度条

Bold_9.show_discrete_image()#Bold_9各种颜色条图片
18bd43eb6f1e0d83a37bd76ec5784584.png

palettable重要属性-输出色度条中单颜色的数目

print(Bold_9.number)#Bold_9这种colormap中单颜色的数目

9即上面的图片有9格

palettable重要属性-输出色度条中单颜色的色号值

print(Bold_9.colors)#Bold_9 colormap中每种颜色的RGB格式色号

print(Bold_9.hex_colors)#Bold_9 colormap中每种颜色的hex格式色号
print(Bold_9.mpl_colors)#RGB tuples in the range 0-1 as used by matplotlib

[[127, 60, 141], [17, 165, 121], [57, 105, 172], [242, 183, 1], [231, 63, 116], [128, 186, 90], [230, 131, 16], [0, 134, 149], [207, 28, 144]]

['#7F3C8D', '#11A579', '#3969AC', '#F2B701', '#E73F74', '#80BA5A', '#E68310', '#008695', '#CF1C90']

[(0.4980392156862745, 0.23529411764705882, 0.5529411764705883), (0.06666666666666667, 0.6470588235294118, 0.4745098039215686), (0.2235294117647059, 0.4117647058823529, 0.6745098039215687), (0.9490196078431372, 0.7176470588235294, 0.00392156862745098), (0.9058823529411765, 0.24705882352941178, 0.4549019607843137), (0.5019607843137255, 0.7294117647058823, 0.35294117647058826), (0.9019607843137255, 0.5137254901960784, 0.06274509803921569), (0.0, 0.5254901960784314, 0.5843137254901961), (0.8117647058823529, 0.10980392156862745, 0.5647058823529412)]

Matplotlib中使用palettable

例子来自matplotlib-饼图(pie)

import matplotlib.pyplot as plt
import matplotlib as mpl
import palettable

mpl.rc_file_defaults()
my_dpi = 96
plt.figure(figsize=(580 / my_dpi, 580 / my_dpi), dpi=my_dpi)
plt.subplot(221)
patches, texts, autotexts = plt.pie(
    x=[1, 2, 3],
    labels=['A', 'B', 'C'],
    #使用palettable.tableau.BlueRed_6
    colors=palettable.tableau.BlueRed_6.mpl_colors[0:3],
    autopct='%.2f%%',
    explode=(0.1, 0, 0))

patches[0].set_alpha(0.3)
patches[2].set_hatch('|')
patches[1].set_hatch('x')
plt.title('tableau.BlueRed_6', size=12)

mpl.rc_file_defaults()
plt.subplot(222)

patches, texts, autotexts = plt.pie(
    x=[1, 2, 3],
    labels=['A', 'B', 'C'],
    #使用palettable.cartocolors.qualitative.Bold_9
    colors=palettable.cartocolors.qualitative.Bold_9.mpl_colors[0:3],
    autopct='%.2f%%',
    explode=(0.1, 0, 0))

patches[0].set_alpha(0.3)
patches[2].set_hatch('|')
patches[1].set_hatch('x')
plt.title('cartocolors.qualitative.Bold_9', size=12)

mpl.rc_file_defaults()
plt.subplot(223)

patches, texts, autotexts = plt.pie(
    x=[1, 2, 3],
    labels=['A', 'B', 'C'],
    #使用palettable.cartocolors.qualitative.Bold_9
    colors=palettable.cartocolors.qualitative.Bold_9.mpl_colors[0:3],
    autopct='%.2f%%',
    explode=(0.1, 0, 0))

patches[0].set_alpha(0.3)
patches[2].set_hatch('|')
patches[1].set_hatch('x')
plt.title('cartocolors.qualitative.Bold_9', size=12)

plt.subplot(223)

patches, texts, autotexts = plt.pie(
    x=[1, 2, 3],
    labels=['A', 'B', 'C'],
    #使用palettable.lightbartlein.sequential.Blues10_5
    colors=palettable.lightbartlein.sequential.Blues10_5.mpl_colors[0:3],
    autopct='%.2f%%',
    explode=(0.1, 0, 0))

#matplotlib.patches.Wedge
patches[0].set_alpha(0.3)
patches[2].set_hatch('|')
patches[1].set_hatch('x')
plt.title('lightbartlein.sequential.Blues10_5', size=12)

plt.subplot(224)

patches, texts, autotexts = plt.pie(
    x=[1, 2, 3],
    labels=['A', 'B', 'C'],
    colors=palettable.wesanderson.Moonrise5_6.mpl_colors[0:3],
    autopct='%.2f%%',
    explode=(0.1, 0, 0))

patches[0].set_alpha(0.3)
patches[2].set_hatch('|')
patches[1].set_hatch('x')
plt.title('wesanderson.Moonrise5_6', size=12)
plt.show()
c1c1efd3192d92b49ee3a89fcd19c268.png

Seaborn中使用palettable

例子来自几行代码绘制靓丽矩阵图
使用palettable.tableau.TrafficLight_9

import seaborn as sns
iris_sns = sns.load_dataset("iris")

import palettable

g = sns.pairplot(
    iris_sns,
    hue='species',
    palette=palettable.tableau.TrafficLight_9.mpl_colors,  #Matplotlib颜色
)
sns.set(style='whitegrid')
g.fig.set_size_inches(10, 8)
sns.set(style='whitegrid', font_scale=1.5)

dc2f59e513fbe1c0892e9a68820e4c7a.png
使用palettable.tableau.BlueRed_6
5a3115a0fd0033cec862c05dda6028cb.png使用palettable.cartocolors.qualitative.Bold_9f05686ff373b7d1aabc833d1bb2c9062.png使用palettable.wesanderson.Moonrise5_6e0ebc11ecfe15ab8032da54e97cbb388.png使用palettable.cartocolors.diverging.ArmyRose_7_rbbe533411b4354b3672ea332806bf617.png


3、palettable包含那些颜色条(Colormap)

palettable下面有16大类Colormap,共计1587小类Colormap,合计上万种单颜色可供使用,已经整理为pdf格式,感兴趣的可以
包含以下16大类

palettable.cartocolors.diverging
palettable.cartocolors.qualitative
palettable.cartocolors.sequential
palettable.cmocean.diverging
palettable.cmocean.sequential
palettable.colorbrewer.diverging
palettable.colorbrewer.qualitative
palettable.colorbrewer.sequential
palettable.lightbartlein.diverging
palettable.lightbartlein.sequential
palettable.scientific.diverging
palettable.scientific.sequential
palettable.matplotlib
palettable.mycarta
palettable.tableau
palettable.wesanderson

共计1587小类【每个小类还有逆类,名称后面加“_r”即可】上面16大类下面有数个小类,例如,著名BI软件Tableau的配色条palettable.tableau这一大类,下面有palettable.tableau.BlueRed_12,palettable.tableau.GreenOrange_12等等数个小类:

palettable.tableau.BlueRed_12
palettable.tableau.BlueRed_6
palettable.tableau.ColorBlind_10
palettable.tableau.Gray_5
palettable.tableau.GreenOrange_12
palettable.tableau.GreenOrange_6
palettable.tableau.PurpleGray_12
palettable.tableau.PurpleGray_6
palettable.tableau.TableauLight_10
palettable.tableau.TableauMedium_10
palettable.tableau.Tableau_10
palettable.tableau.Tableau_20
palettable.tableau.TrafficLight_9

也就是类似上面的这种有1587行


4、palettable 高清CheatSheet获取方式

  • 小编将palettable的1587类色度条制作成了高清CheatSheet,共计51页pdf,免费分享给大家。
    获取方式:关注公众号,人工智能技术,发送关键词pt,即可获取。

▲点击回复pt即可获取

-END-

往期推荐 点击查看

用Python自动生成Excel数据报表!

2022-01-10

c76bb6d656c80aa20d5512ce498d8bad.png

清华大学开源了一项神器,已经在GitHub爆了

2022-01-09

d9698165454fa82e1cab5e5d8a702abf.png

用Python写了一个图像文字识别OCR工具

2022-01-08

e66d598e31769aea6f7c2d569fc15933.png

10张思维导图,全面讲解 Pandas

2022-01-08

9586ca11c4cbe7d971b33e7eb7851f92.png

十行Python代码替换证件照背景颜色

2022-01-07

d6a53eb11a814c4d25ad0a77aa3861f5.png

96552c7bfd2a81504bf4cdf1e2481b7a.png

分享

576b0956e440498ee7d08e2e90ee1c37.png

收藏

338955b0cc0bf841ae8ab2041e44a2b0.png

点赞

ecfaeccf140e84371747e72e75208db1.png

在看

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值