Seaborn 多面板分类图
分类数据可以使用两种图来进行可视化,你可以使用函数 pointplot() ,或者更高级别的函数 factorplot()。
Factorplot
Factorplot在FacetGrid上绘制一个分类图。使用’kind’参数,我们可以选择boxplot、violinplot、barplot和stripplot这样的图。FacetGrid默认使用点阵图。
例子
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = pulse", hue = "kind",data = df);
plt.show()
输出
我们可以使用不同的绘图来可视化相同的数据,使用 种类 参数。
例子
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin',data = df);
plt.show()
输出
在 factorplot 中,数据被绘制在一个面状网格上。
什么是面状网格
Facet grid 通过划分变量形成一个由行和列定义的面板矩阵。由于面板的存在,一个图看起来像多个图。它对分析两个离散变量的所有组合非常有帮助。
让我们用一个例子来说明上述的定义
例子
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin', col = "diet", data = df);
plt.show()
输出
使用 Facet 的好处是,我们可以在图中输入另一个变量。上面的图是根据第三个变量 “饮食 “用 “col “参数分成两幅图的。
我们可以制作许多列面,并将它们与网格的行对齐:
例子
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.factorplot("alive", col = "deck", col_wrap = 3,data = df[df.deck.notnull()],kind = "count")
plt.show()
输出: