seaborn使用(样式管理)
Seaborn是一个在Python中制作具有吸引力和丰富信息的统计图形的库。它建立在matplotlib之上,并与PyData堆栈紧密集成,包括支持scipy和pandas的数据结构以及scipy和 statsmodels的统计模型。
serborn官方参考文档
- 样式管理
- 绘图函数
- 结构化网格
一、样式管理
- seaborn图形样式
- 去除坐标轴上的轴刺
- 临时设置图形的样式
- 重写seaborn的元素样式
- 缩放图形的规模
- 选择调色板
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
中会经常使用。