说点什么呢
seaborn
是python的一个可视化模块,构建于matplotlib
之上,对于pandas
的DataFrame
这种数据结构有着很好的支持,能够大大减少构建绘图数据是所需的工作量(我也不知道自己为什么要装逼不去用R的ggplot2
)。
countplot
到底要不要点
有时候我们需要对DataFrame
中的某一列或两列进行统计(多了我也不会),省去去构建barplot
所需的数据这一过程,seaborn
的countplot
能够很好的胜任这一……(这一什么?使命~ 真的是词穷啊~)
(markdown
竟然有下标 可以)
Show the counts of observations in each categorical bin using bars.
使用bars来表示每个分类数据的数目
如果你没有打开上面的链接,那么~我把它搬过来了。
像所有的matplotlib
函数那样,这个函数也有着挺多的参数,但是平时用到的应该也就这几个
x, y, hue : names of variables in data or vector data, optional
data : DataFrame, array, or list of arrays, optional
order, hue_order : lists of strings, optional
ax
data
平时我用的也就是DataFrame
的名字
ax
用来指定坐标系(不明白的话去补一下matplotlib
的知识)。
x
比较容易理解,就是因子所在的列名(平时使用的都是DataFrame
),如果只给了x
这一个指定数据的参数,那么就会汇出这个每个因子所包含的记录的数目(ipython notebook)
import seaborn as sns
%matplotlib inline
titanic_df=sns.load_dataset("titanic")
titanic_df.head(5) #看一下数据什么样子
survived pclass sex age sibsp parch fare embarked class who adult_male deck embark_town alive alone
0 0 3 male 22.0 1 0 7.2500 S Third man True NaN Southampton no False
1 1 1 female 38.0 1 0 71.2833 C First woman False C Cherbourg yes False
2 1 3 female 26.0 0 0 7.9250 S Third woman False NaN Southampton yes True
3 1 1 female 35.0 1 0 53.1000 S First woman False C Southampton yes False
4 0 3 male 35.0 0 0 8.0500 S Third man True NaN Southampton no True
# 用y的话就变成水平的了
sns.countplot(x = 'survived',data=titanic_df)
这里是仅仅绘出了titanic_df
的survived
这一列数据中两类的数目
有500+的遇难者(‘0’),300+的幸存者(‘1’)。
(ps:这里使用的是seaborn
自带的泰坦尼克的数据,对就是那艘首秀即谢幕的巨轮)
如果我们同时要查看在这些遇难者以及幸存者中,男人以及女人的数目,就需要加入另外一个参数hue
(我始终不明白为什么要用这个词~)
# 依旧是上面的数据
sns.countplot(x = 'survived',hue = 'sex',data=titanic_df)
遇难者以及幸存者男女比例一目了然,这很gentleman。
嗯~就到这里
如果想要进行更多的定制话操作,可以参照axis
对象的方法(matplotlib
中),由于这个函数是有返回值的,返回的是一个matplotlib Axes
对象,因此,可以通过面向对象的方法进行后续axis
所支持的各种操作。
# 中文无法正常显示,好像字体问题,没有深究。
g = sns.countplot(x = 'survived',hue = 'sex',data=titanic_df)
g.set_title('title')