longgb246的博客

Seaborn-02-颜色板控制

基本

1
2
3
4
5
6
#-*- coding:utf-8 -*-
from __future__ import division
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

1、定性调色板 Qualitative

默认的定性调色板:deep, muted, pastel, bright, dark, colorblind.

1
2
current_palette = sns.color_palette()
sns.palplot(current_palette)

02_01.png

1
2
current_palette = sns.color_palette("pastel")
sns.palplot(current_palette)

02_02.png

2、使用环形调色板

画出均匀色带的颜色(改变颜色,但是保持色彩的亮度和饱和度)
hls_palette : h(hue)l(lightness)s(saturation),均在0-1之间

1
2
sns.palplot(sns.hls_palette(8, l=.3, s=.8))
sns.palplot(sns.husl_palette(8, l=.3, s=.8))

02_03.png

3、自定义一个RGB颜色带

1
2
flatui = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"]
sns.palplot(sns.color_palette(flatui))

02_041.png

4、序列颜色 Sequential

cubehelix_palette
最好:start0~3,rot-1~1

1
2
sns.palplot(sns.cubehelix_palette(8, start=.5, rot=-.75))
sns.palplot(sns.cubehelix_palette(8, start=1.2, rot=.01))

02_04.png

1
2
sns.palplot(sns.cubehelix_palette(8, start=2, rot=0, dark=0, light=.95, reverse=True))
sns.palplot(sns.cubehelix_palette(8, start=2, rot=0.05, reverse=True))

02_05.png

1
2
3
x, y = np.random.multivariate_normal([0, 0], [[1, -.5], [-.5, 1]], size=300).T
cmap = sns.cubehelix_palette(light=1, as_cmap=True)
sns.kdeplot(x, y, cmap=cmap, shade=True)

02_06.png

light_palette、dark_palette 两种颜色调,渐亮、渐暗

1
2
sns.palplot(sns.light_palette("green"))
sns.palplot(sns.light_palette("#000000"))

02_07.png

1
2
3
4
5
sns.palplot(sns.dark_palette("purple"))
sns.palplot(sns.dark_palette("#a27712"))
pal = sns.dark_palette("palegreen", as_cmap=True)
sns.kdeplot(x, y, cmap=pal)

02_08.png

5、对称色调 diverging_palette

1
2
sns.palplot(sns.diverging_palette(145, 280, s=85, l=25, n=7))
sns.palplot(sns.diverging_palette(10, 220, sep=80, n=7))

02_09.png

1
sns.palplot(sns.diverging_palette(255, 133, l=60, n=7, center="dark"))

02_10.png

6、色调画图

1
2
3
4
5
6
7
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 7):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
sns.set_palette("husl")
sinplot()

02_11.png

1
2
with sns.color_palette("PuBuGn_d"):
sinplot()

02_12.png

1
2
with sns.cubehelix_palette(8, start=1.2, rot=.01):
sinplot()

02_13.png

坚持原创技术分享,您的支持将鼓励我继续创作!