Seaborn Facet Grid
探索中等维度数据的一种有用方法是在数据子集的不同部分上绘制相同绘图的多个实例。
此技术通常被称为“格子”或“镶嵌”绘图,与“小倍数”概念相关。
要使用这些功能,您的数据必须在Pandas DataFrame中。
绘制数据子集的小倍数
在前一章中,我们已经看到了FacetGrid示例,在其中使用FacetGrid类根据数据集的子集在不同的面板中将一个变量的分布以及多个变量之间的关系可视化。
一个FacetGrid可以根据行、列和色调绘制,前两个与结果轴的数组具有明显的对应关系;将色调变量视为沿深度轴的第三个维度,不同的级别使用不同的颜色进行绘制。
FacetGrid 对象以一个数据框作为输入,并且以形成网格的行、列或色调维度的变量的名称命名。
变量应该是分类的,每个变量水平上的数据将用于沿该轴的facet。
示例
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()