这是 Python 数据可视化系列的第三节《Seaborn 上》。
Python 数据可视化
之前 Python 数据分析和基础系列的所有课程链接如下。
Python 数据分析
Python 基础
Seaborn 是基于 matplotlib 开发而用于统计可视化的高阶工具包。它可无缝相接的在 Pandas 的 DataFrame 上直接画图,而且代码量不多,函数签名也很一致。Seaborn 可视化的内容很多,我将其分为三个部分来讲解。
1. Seaborn 101
2. 单图
3. 组合图
本节关注第一部分 (该部分细节巨多,学完本节可以提高任意画图的能力)。
Seaborn 把“美图”用其主题 (theme) 功能体现:
set_theme( context='notebook',
style='darkgrid',
palette='deep' )
Seaborn 在画图时考量三大要素:场景 (context),风格 (style) 和色调 (palette),下面三小节详细说明,当设定场景、风格和色调时,Seaborn 中有特定函数 set_context(), set_style() 和 set_palette()。
场景
for context in ['paper','notebook','talk','poster']:
sns.set_context(context)
sns.histplot(df['Close'])
plt.show()
风格
for style in ['darkgrid','whitegrid','dark','white','ticks']:
sns.set_style(style)
sns.histplot(df['Close'])
plt.show();
色调
Seaborn 提供了非常多的调色板:
从上面高亮的关键词可看出,调色板大致分为以下三类:
Seaborn 还提供了几个交互式小部件 (palette widgets)
定性调色板:适用于无序数据
有序调色板:适用于有序,而且只有一端有重要值的数据
发散调色板:适用于两端都有重要值的数据
图级函数 & 轴级函数
Seaborn 中的绘图函数可分为两类:
图级函数最有用的功能就是可以轻松创建多个子图 (subplots),举例如下:
sns.displot(data=penguins, x="flipper_length_mm", hue="species", col="species");
轴级函数内部调用 matplotlib.pyplot.gca() 以便在“当前轴” (currently-active axes) 上绘图,但在画图时还需要设置额外的参数 ax。
f, axs = plt.subplots(1, 2, figsize=(8, 4), gridspec_kw=dict(width_ratios=[4, 3]))
sns.scatterplot(data=penguins, x="flipper_length_mm", y="bill_length_mm", hue="species", ax=axs[0])
sns.histplot(data=penguins, x="species", hue="species", shrink=.8, alpha=.8, legend=False, ax=axs[1])
f.tight_layout()