seaborn主题风格与调色板设定

在python可视化中,Matplotlib自动化程度非常高,但是,掌握如何设置系统以便获得一个吸引人的图是相当困难的事。为了控制matplotlib图表的外观,Seaborn模块自带许多定制的主题和高级的接口。

Seaborn中有五种可供选择的主题:

    1.darkgrid(灰色网格)
    2.whitegrid(白色网格)
    3.dark(黑色)
    4.white(白色)
    5.ticks(十字叉)

下面,分别介绍一下五种主题:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
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)
sinplot()

默认情况下matplotlib的画的图是这样的:


转换成Seaborn模式画图,只需要引入seaborn模块。

sns.set()
sinplot()


seaborn默认浅灰色背景与白色网络线。

sns.set_style("whitegrid")
data = np.random.normal(size=(20, 6)) + np.arange(6) / 2
sns.boxplot(data=data)


sns.set_style("dark")
sinplot()

sns.set_style("white")
sinplot()


sns.set_style("ticks")
sinplot()


white和ticks两种主题都会包含没有必要的上边框和右边框。我们可以用despine()函数去除。

sinplot()
# 去掉多余的线
sns.despine()


除了可以用set_style()来设置风格,还可以用axes_style()。

with sns.axes_style("darkgrid"):
    plt.subplot(211)
    sinplot()
plt.subplot(212)
sinplot()
sns.despine()


接下来,介绍一下seaborn库中的调色板。

颜色在可视化中非常重要,用来代表各种特征,并且提高整个图的观赏性。在seaborn中颜色主要分为连续渐变性和离散分类性。

先说说分类色板,主要用color_palette()函数。

    · color_palette()能传入任何Matplotlib所支持的颜色
    · color_palette()不写参数则默认颜色
    · set_palette()设置所有图的颜色

6个默认的颜色循环主题: deep, muted, pastel, bright, dark, colorblind

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


默认的颜色只有六种,如果,我们需要更多的颜色,使用hls色彩空间。

sns.palplot(sns.color_palette("hls", 10))


data = np.random.normal(size=(20, 8)) + np.arange(8) / 2
sns.boxplot(data=data, palette=sns.color_palette("hls", 8))


我们还可以通过hls_palette()函数来改变颜色的亮度和饱和度:

    · l-亮度 lightness
    · s-饱和度 saturation

sns.palplot(sns.hls_palette(8, l=.5, s=.7))


连续渐变颜色:

色彩随数据变换,比如数据越来越重要则颜色越来越深。(只用在颜色加s即可)

sns.palplot(sns.color_palette("Blues"))


如果想要翻转渐变,可以在面板名称中添加一个_r后缀。

sns.palplot(sns.color_palette("BuGn_r"))


light_palette() 和 dark_palette()调用定制连续调色板。

x, y = np.random.multivariate_normal([0,0], [[1, -.5], [-.5, 1]], size=3000).T
pal = sns.dark_palette("green", as_cmap=True)
sns.kdeplot(x, y, cmap=pal)


参考:

http://seaborn.pydata.org/tutorial/color_palettes.html#palette-tutorial


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值