seaborn使用(样式管理)

时间:2023-03-09 06:55:54
seaborn使用(样式管理)

seaborn使用(样式管理)


Seaborn是一个在Python中制作具有吸引力和丰富信息的统计图形的库。它建立在matplotlib之上,并与PyData堆栈紧密集成,包括支持scipy和pandas的数据结构以及scipy和 statsmodels的统计模型。

serborn官方参考文档

  • 样式管理
  • 绘图函数
  • 结构化网格

一、样式管理

  1. seaborn图形样式
  1. 去除坐标轴上的轴刺
  2. 临时设置图形的样式
  3. 重写seaborn的元素样式
  4. 缩放图形的规模
  5. 选择调色板

1.seaborn图形样式

seaborn目前共有五种样式,分别是darkgrid, whitegrid, dark, white, and ticks,默认的是darkgrid,黑色带网格的背景。

sns.set_style("whitegrid")

2.去除坐标轴上的轴刺

坐标轴上的轴刺是指,在刻度处显示的小竖线,为了美观,有时我们需要把该细线去掉,代码如下。

sns.despine()

3.临时设置图形的样式

与直接修改所有seaborn图形样式不一样,如果我们仅仅需要修改其中一个图形的样式,可以使用with,代码如下。

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

4.重写seaborn的元素样式

如果想自定义某个元素的具体样式,可以将要修改的属性参数通过字典的方式传入到axes_style() set_style()中,通过sns.axes_style()可以查看当前的属性值和参数值,如果想要修改的参数不在返回的属性中,可以调用更高级别的函数set(),该函数可以修改任意属性值。


5.图形规模的缩放

seaborn给我们提供了四个预定的值 paper,notebook,talk,poster,默认值是notebook,需要注意的一点是,修改该属性值之前我们需要先调用sns.set()重置默认的参数,代码如下。

sns.set()
sns.set_context("paper")
sinplot()

如果进一步的想要自定义图形的规模,可以通过以下代码实现。

sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})
sinplot()

6.颜色的控制

  • 定性的调色板
  • 顺序调色板
  • 发散调色板

定性调色板用来绘画那些没有相关关系的变量,可以从视觉上更好的区分不同变量。

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

上述代码中,sns.color_palette()会返回当前默认调色板中的颜色列表,但颜色的个数是固定的,当我们需要使用的颜色数大于该列表中颜色的数量时,可以通过以下代码实现。

sns.palplot(sns.color_palette("husl", 8))
# 以下也可以实现
sns.palplot(sns.color_palette("Set2", 8))

我们可以修改数字8为其他数字,根据需要的颜色个数自行修改。

也可以直接指定使用的颜色

plt.plot([0, 1], [0, 1], sns.xkcd_rgb["pale red"], lw=3)
plt.plot([0, 1], [0, 2], sns.xkcd_rgb["medium green"], lw=3)
plt.plot([0, 1], [0, 3], sns.xkcd_rgb["denim blue"], lw=3);

顺序调色板也就是渐变色,我们可以通过颜色映射数据值的大小,尤其是在kdeplot()corrplot中会经常使用。