0


通过函数seaborn.cubehelix_palette生成顺序调色板

沉舟侧畔千帆过,病树前头万木春。 ——刘禹锡

import numpy as np
import seaborn as sns

引言

  • 本文主要对seaborn库中的调色板函数cubehelix_palette进行简单说明
  • 函数cubehelix_palette通过cubehelix系统来生成顺序调色板(sequential palette)、且共有九个参数可以调整
  • 实际上、本文并未总结出显著的规律性方法来调用该函数、但记住一些常用的调色板所对应的参数、并善于对参数进行微调可能才是更为有用的指导

正文开始

  • 查看默认调色板、jupyter中直接调用函数sns.cubehelix_palette()就可以显示
  • 显然从明到暗、6种颜色
sns.palplot(sns.cubehelix_palette())

默认调色板

  • 由于函数默认返回的是RGB元组列表(list of RGB tuples)、所以可以通过整数或者切片来选取调色板中的部分颜色
sns.palplot(sns.cubehelix_palette()[::2])

切片选取部分颜色

  • 参数rot控制在调色板的范围内围绕色调轮旋转
  • 通过从-0.5到0.6且步长为0.1的循环来查看所生成的颜色表、参数n_colors控制生成色块的数量
for rot in np.arange(start=-0.5, stop=0.6, step=0.1):
    sns.palplot(sns.cubehelix_palette(n_colors=12, rot=rot))

rot=-0.5
rot=-0.4
rot=-0.3
rot=-0.2
rot=-0.1
rot=0.0rot=0.1

rot=0.2
rot=0.3
rot=0.4
rot=0.5

  • 参数start控制螺旋线开始的色调
  • 可以进行一些对比、这是不设置开始色调时生成的颜色表
sns.palplot(sns.cubehelix_palette(n_colors=8, rot=-.2))

start为默认值

  • 同样循环改变参数start、且产生了和参数rot类似的效果
  • 但并没有发现可循的规律…
for start in np.arange(start=0, stop=3, step=0.6):
    sns.palplot(sns.cubehelix_palette(n_colors=8, rot=-.2, start=start))

start=0

start=0.6

start=1.2

start=1.8
start=2.4

  • 参数gamma控制颜色的明暗、越小于1越亮、越大于1越暗
sns.palplot(sns.cubehelix_palette(n_colors=8, rot=0.2, gamma=0.1))
sns.palplot(sns.cubehelix_palette(n_colors=8, rot=0.2, gamma=0.5))
sns.palplot(sns.cubehelix_palette(n_colors=8, rot=0.2))
sns.palplot(sns.cubehelix_palette(n_colors=8, rot=0.2, gamma=1.5))      
sns.palplot(sns.cubehelix_palette(n_colors=8, rot=0.2, gamma=2.5))

gamma=0.1
gamma=0.5
gamma为默认值
gamma=1.5
gamma=2.5

  • 参数hue控制颜色的饱和度
  • 官网所给出的范围是从0到1、但超出来也并没有什么问题
for hue in np.arange(start=-0.5, stop=2.0, step=0.5):
    sns.palplot(sns.cubehelix_palette(rot=0.5, hue=hue))

hue=-0.5
hue=0
hue=0.5

hue=1.0hue=1.5

  • 参数dark参数light分别控制调色板/颜色表中最暗和最亮颜色的强度
  • 使用的时候慢慢调整到合适的、所需要的颜色吧
sns.palplot(sns.cubehelix_palette(rot=-0.2, gamma=0.5, dark=0.05))
sns.palplot(sns.cubehelix_palette(rot=-0.2, gamma=0.5))
sns.palplot(sns.cubehelix_palette(rot=-0.2, gamma=0.5, dark=0.5))

dark=0.05

dark为默认值

dark=0.5

sns.palplot(sns.cubehelix_palette(rot=-0.2, gamma=0.5, light=0.3))
sns.palplot(sns.cubehelix_palette(rot=-0.2, gamma=0.5, light=0.5))
sns.palplot(sns.cubehelix_palette(rot=-0.2, gamma=0.5))

light=0.3
light=0.5
light为默认值

  • 参数light取0.85、或参数dark取0.15为默认值
sns.palplot(sns.cubehelix_palette(rot=-0.2, gamma=0.5))== sns.palplot(sns.cubehelix_palette(rot=-0.2, gamma=0.5, light=0.85))
True

light为默认值light=0.85

sns.palplot(sns.cubehelix_palette(rot=-0.2, gamma=0.5))== sns.palplot(sns.cubehelix_palette(rot=-0.2, gamma=0.5, dark=0.15))
True

dark为默认值dark=0.15

  • 参数reverse可以将调色板从明到暗改为从暗到明
sns.palplot(sns.cubehelix_palette(rot=-0.5, gamma=0.5))
sns.palplot(sns.cubehelix_palette(rot=-0.5, gamma=0.5, reverse=True))

参数reverse为False

参数reverse为True

  • 参数as_cmap可以将函数返回值从RGB元组列表改为matplotlib的colors.Colormap数据类型
  • 这样就可以通过顺序调色板函数cubehelix_palette来设置其他绘图函数中的参数cmap
cmap = sns.cubehelix_palette(rot=-0.2, as_cmap=True, light=1)
sns.heatmap(data=np.arange(25).reshape(5,5), cmap=cmap)

设置绘图函数中的参数cmap


本文转载自: https://blog.csdn.net/qq_46621219/article/details/125086391
版权归原作者 KevinDuangDuangDuang 所有, 如有侵权,请联系我们删除。

“通过函数seaborn.cubehelix_palette生成顺序调色板”的评论:

还没有评论