Seaborn 风格设置

Seaborn 库相较于 Matplotlib 使用更加简单方便,并且可以设置不同的 Seaborn 风格。Seaborn 库的主题风格有如下 5 种:

  • darkgrid
  • whitegrid
  • dark
  • white
  • ticks

再开始介绍前,我们首先导入相关工具包,并执行魔法指令:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

%matplotlib inline

这里我们比之前多了一个工具包的导入:import seaborn as sns,就是我们今天介绍的主角 Seaborn 库。

首先,使用 Matplotlib 绘制一张折线图:

def my_plot():
    x = np.linspace(-10, 10, 100)
    for i in range(1, 7):
        plt.plot(x, -x**2-5*i)

my_plot()

绘制结果:

下面,我们使用 sns.set() 将绘图风格设置为 Seaborn 库默认的主题风格:

sns.set()
my_plot()

绘制结果:

可见 Seaborn 库默认的主题风格即 darkgrid

下面,我们来看 whitegrid 风格的绘图。首先构造一组数据:

>> data = np.random.normal(size=(20, 6)) + np.arange(6) / 2
>> data
array([[ 0.50043126,  2.05154056,  2.07807178,  1.06626428,  2.23354891,
         2.06661851],
       [ 0.03881794,  0.2380959 ,  1.80820601,  2.11175762,  2.07237335,
         2.11019608],
       [ 0.45544742,  0.75383046,  0.16691214,  2.35224002,  2.36564043,
         3.99343506],
       [-0.82310356,  0.7754227 ,  1.56347575,  1.13595978,  2.27480695,
         1.10286358],
       ...
       [ 0.13538917, -0.41568549, -0.3778096 ,  3.03486853,  1.96548553,
         2.38730081],
       [-0.95326404,  0.95174162,  1.80429181,  2.54299904,  1.04390341,
         3.66710519],
       [-2.48693243,  0.25720482,  1.49159918,  2.27662074,  1.78703827,
         1.87306935]])

其中 data 为 20 * 6 的数组,将上述 6 列数据绘制为盒形图:

sns.set_style("whitegrid")
sns.boxplot(data=data)

绘制结果:

当然,也可以使用 darkwhite 不使用网格:

ticks 会在坐标轴上标注出刻度:

sns.set_style("ticks")
sns.boxplot(data=data)

此外,sns.despine() 还可以将上方和右侧的坐标轴去掉:

sns.set_style("ticks")
sns.violinplot(data=data)
sns.despine()

这里,我们绘制的是和盒图非常相似的小提琴图:

还可以将左侧的坐标轴也指定为抹除:

sns.violinplot(data=data)
sns.despine(left=True)

最后,介绍一下 sns.axes_style("darkgrid") 返回的是一个上下文管理器,可以用在 with 语句中,这样该坐标系的风格只影响 with 语句内的绘图。

plt.figure(figsize=(8, 10))

with sns.axes_style("darkgrid"):
    plt.subplot(211)
    sns.boxplot(data=data)

with sns.axes_style("whitegrid"):
    plt.subplot(212)
    sns.violinplot(data=data)

你可能感兴趣的:(Seaborn 风格设置)