seaborn系列 (5) | 柱状图countplot()

柱状图

柱状图

使用计数图(柱状图)显示每个分类数据中的数量统计

函数原型

seaborn.countplot(x=None, y=None, hue=None, 
                  data=None, order=None, hue_order=None, 
                  orient=None, color=None, palette=None,
                  saturation=0.75, dodge=True, ax=None, **kwargs)

参数解读

seaborn系列 (5) | 柱状图countplot()

输入数据可以通过多种格式传递:

1.list、numpy数组、pandas
2.long-form DataFrame
3.wide-form DataFrame
4.在大多数情况下,可以使用numpy或Python对象,但推荐使用pandas对象,
因为关联的名称将用于注释轴。
此外,使用分类类型来分组变量来控制绘图元素的顺序。

可选:
x,y,hue:数据变量的名称(如上表,date,name,age,sex为数据字段变量名)
用于绘制数据的输入

data: DataFrame,数组或数组列表
用于绘图的数据集,如果x和y不存在,则将其解释为 wide-form,
否则它被认为是 long-form

order, hue_order:字符串列表
指定绘制分类级别,否则从数据对象推断级别

orient: v | h
图的显示方向(垂直或水平,即横向或纵向),这通常可以从输入变量的dtype推断得到

palette:调色板名称,list列表,dict字典
用于对变量调不同级别的颜色

saturation(饱和度):float
用于绘制颜色的原始饱和度的比例,如果希望绘图颜色与输入颜色规格完美匹配,
则将其设置为1

dodge:bool
使用色调嵌套时,是否应沿分类轴移动元素。

案例教程

案例代码已上传:Github地址


import seaborn as sns
sns.set(style="darkgrid")
titanic = sns.load_dataset("titanic")
#查看数据
titanic[:8]

seaborn系列 (5) | 柱状图countplot()


import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
# 获取数据
titanic = sns.load_dataset("titanic")
"""
案例1:显示单个分类变量的值统计数
"""
sns.countplot(x="who", data=titanic)
plt.show()

seaborn系列 (5) | 柱状图countplot()


import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
# 获取数据
titanic = sns.load_dataset("titanic")
"""
案例2:显示多个分类变量的值统计数
"""
sns.countplot(x="class", hue="who", data=titanic)
plt.show()

seaborn系列 (5) | 柱状图countplot()

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
# 获取数据
titanic = sns.load_dataset("titanic")
"""
案例3:水平横向绘制条形图
"""
sns.countplot(y="class", hue="who", data=titanic)
plt.show()

seaborn系列 (5) | 柱状图countplot()


import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
# 获取数据
titanic = sns.load_dataset("titanic")
"""
案例4:使用不同调色板
"""
sns.countplot(x="who", data=titanic, palette="Set2")
plt.show()

seaborn系列 (5) | 柱状图countplot()


import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
# 获取数据
titanic = sns.load_dataset("titanic")
"""
案例5:使用catplot()来实现countplot()的统计效果,必须设置kind="count"
当要对其他分类变量进行分组时,使用catplot()比直接使用FacetGrid更加安全
"""
sns.catplot(x="class", hue="who", col="survived",
            data=titanic, kind="count",
            height=4, aspect=.7);
plt.show()

seaborn系列 (5) | 柱状图countplot()

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
# 获取数据
titanic = sns.load_dataset("titanic")
"""
案例6:绘制空心的直方图
"""
sns.countplot(x="who", data=titanic,
              facecolor=(0, 0, 0, 0),
              linewidth=5,
              edgecolor=sns.color_palette("dark", 3))
plt.show()

seaborn系列 (5) | 柱状图countplot()

案例地址

上述案例代码已上传:Github地址
Github地址https://github.com/Vambooo/SeabornCN

更多技术干货在公众号:数据分析与可视化学研社
seaborn系列 (5) | 柱状图countplot()

上一篇:python数据分析常用图大集合


下一篇:seaborn绘图包的使用(持续更新中)