本套Seaborn教程基于网上seaborn 0.9.0 tutorial加上学习心得。
可视化统计关系
统计分析是了解数据集中的变量如何相互关联以及这些关系如何依赖于其他变量的过程。可视化可以是此过程的核心组件,因为当数据可视化时,人类视觉系统可以看到指示关系的趋势和模式。
本章讲到三个seaborn函数:
我们最常用的是relplot()
。这是一个图形级函数,用于使用两种常见方法可视化统计关系:散点图和线图。relplot()
将a FacetGrid
与两个轴级功能之一组合在一起:
-
scatterplot()
(有kind="scatter"
;默认) -
lineplot()
(带kind="line"
)
它们可以表示复杂的数据集结构,因为他们绘制二维图形,可以通过使用色调,大小和样式的语义映射多达三个附加变量来增强。
补充 图形级函数
控制图形级函数的大小与其他matplotlib图形的作用略有不同。不是设置整体图形大小,而是通过每个面的大小来参数化图形级函数。而不是设置每个面的高度和宽度,您可以控制高度和纵横比(宽高比)。这种参数化可以很容易地控制图形的大小,而不用考虑它将具有多少行和列。
你可以判断一个函数是“图形级”还是“轴级”的方式是它是否需要一个ax=
参数。您还可以通过输出类型区分这两个类:axis-level函数返回matplotlib axes
,而figure-level函数返回[FacetGrid
]。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="darkgrid")
用散点图关联变量
tips = sns.load_dataset("tips")
sns.relplot(x="total_bill", y="tip", data=tips);
色调定义:根据对第三个变量着色来添加维度hue(色调)
sns.relplot(x="total_bill", y="tip", hue="smoker", data=tips);
要强调类之间的差异并改善可访问性,可以为每个类使用不同的标记样式style(标记样式)
sns.relplot(x="total_bill", y="tip", hue="smoker", style="smoker",
data=tips);
用线图强调连续性
在seaborn中,这可以通过该lineplot()
功能直接或relplot()
通过设置来完成kind="line"
df = pd.DataFrame(dict(time=np.arange(500),
value=np.random.randn(500).cumsum()))
g = sns.relplot(x="time", y="value", kind="line", data=df)
g.fig.autofmt_xdate()
聚合和表示不确定性
更复杂的数据集将对x变量的相同值进行多次测量。seaborn中的默认行为是x通过绘制平均值周围的平均值和95%置信区间来聚合每个值的多个测量值:
fmri = sns.load_dataset("fmri")
sns.relplot(x="timepoint", y="signal", kind="line", data=fmri);
对于大的数据的一种处理是禁用用ci:
sns.relplot(x="timepoint", y="signal", ci=None, kind="line", data=fmri);
另一个好的选择,特别是对于较大的数据,是通过绘制标准偏差而不是置信区间来表示每个时间点的分布范围:
sns.relplot(x="timepoint", y="signal", kind="line", ci="sd", data=fmri);
网友评论