Seaborn - 多面体网格

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

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

要使用这些功能,您的数据必须在 Pandas 数据框中。


绘制小倍数的数据子集

在上一章中,我们看到了 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,plot的个数多了一个。 我们在前面的章节中讨论了 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()

输出

比率