Seaborn - 面网格


探索中维数据的一种有用方法是在数据集的不同子集上绘制同一图的多个实例。

这种技术通常被称为“格子”或“网格”绘图,它与“小倍数”的概念有关。

要使用这些功能,您的数据必须位于 Pandas DataFrame 中。

绘制小倍数的数据子集

在上一章中,我们看到了 FacetGrid 示例,其中 FacetGrid 类有助于使用多个面板可视化一个变量的分布以及数据集子集中多个变量之间的关系。

FacetGrid 最多可以用三个维度来绘制:行、列和色调。前两个与所得的轴数组有明显的对应关系;将色调变量视为沿深度轴的第三个维度,其中不同的级别用不同的颜色绘制。

FacetGrid对象采用数据帧作为输入以及将形成网格的行、列或色调维度的变量名称。

变量应该是分类的,并且变量每个级别的数据将用于沿该轴的方面。

例子

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
plt.show()

输出

图表

在上面的例子中,我们刚刚初始化了facetgrid对象,它没有在上面绘制任何东西。

在此网格上可视化数据的主要方法是使用FacetGrid.map()方法。让我们使用直方图来查看每个子集中提示的分布。

例子

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
g.map(plt.hist, "tip")
plt.show()

输出

差异化

由于参数 col 的原因,绘图的数量不止一个。我们在前面的章节中讨论了 col 参数。

要制作关系图,请传递多个变量名称。

例子

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "sex", hue = "smoker")
g.map(plt.scatter, "total_bill", "tip")
plt.show()

输出

比率