2017-04-02 66 views
1

以下是我的代码。seaborn.FacetGrid col参数表现不如预期

import seaborn as sns 
import matplotlib.pyplot as plt 

%matplotlib inline 
sns.set_style('whitegrid') 

titanic = sns.load_dataset('titanic') 
g = sns.FacetGrid(titanic, col="sex") 
g = g.map(plt.hist, "age") 

柱状图如图所示。

current histogram output

现在我有一个关于参数col问题。我看到连续排列了两个直方图。但我已经提到过col=sex。那么col参数的目的是什么,以及为什么直方图以行方式排列?

+0

你读http://seaborn.pydata.org/generated/seaborn.FacetGrid.html? FacetGrid子图网格绘制条件关系。因此,当你根据性别值选择性别seaborn图的所有直方图。如果您选择另一列,即三个值,您将得到3个直方图。 – Serenity

+0

好的,所以'col'参数只是给出了dataframe列的名字。说得通。 – user9026

+0

*山坳参数不表现为预期的* ... ...,什么是预期的行为? – Parfait

回答

0

指定col参数子集的数据帧到由匹配所指示的参数名称的变量分组。每个组将绘制在结果图的单独列中。在你的情况下,数据帧变量sex有两个组:男性和女性。在结果图中,这些组中的每一组都被绘制在单独的列中,这就是为什么在您的图中有两列和一行。

FaceGrid文档字符串:

行,列,色调:字符串

定义数据,这将在网格分立面绘制的子集的变量。查看* _order参数来控制此变量的级别顺序。