柱状图
柱状图
使用计数图(柱状图)显示每个分类数据中的数量统计
函数原型
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)
参数解读
输入数据可以通过多种格式传递:
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]
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()
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()
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()
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()
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()
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()
案例地址
上述案例代码已上传:Github地址
Github地址https://github.com/Vambooo/SeabornCN
更多技术干货在公众号:数据分析与可视化学研社