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()

输出

Graphs

在上面的示例中,我们只是初始化了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()

输出

differentiation

由于 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()

输出

Ratio
广告