前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据可视化(14)-Seaborn系列 | 条形图barplot()

数据可视化(14)-Seaborn系列 | 条形图barplot()

原创
作者头像
数据分析可视化
修改2019-10-08 11:14:33
6.8K0
修改2019-10-08 11:14:33
举报
文章被收录于专栏:数据分析与可视化

条形图

条形图主要展现的是每个矩形高度的数值变量的中心趋势的估计。

注:条形图只显示平均值(或其他估计值)。但在很多情况下,每个分类变量级别上显示值的分布可能提供更多信息,此时很多其他方法,如一个盒子或小提琴图可能更合适。

函数原型

代码语言:txt
复制
seaborn.barplot(x=None, y=None, hue=None, 
                data=None, order=None, hue_order=None, 
                estimator=<function mean>, ci=95, 
                n_boot=1000, units=None, orient=None, 
                color=None, palette=None, saturation=0.75, 
                errcolor='.26', errwidth=None, capsize=None, 
                dodge=True, ax=None, **kwargs)

参数解读

表1
表1
代码语言:txt
复制
x,y,hue:数据字段变量名(如上表,date,name,age,sex为数据字段变量名)

data: DataFrame,数组或数组列表

order,hue_order:字符串列表
作用:显式指定分类顺序,eg. order=[字段变量名1,字段变量名2,...]

estimator:可回调函数
作用:设置每个分类箱的统计函数

ci:float或者"sd"或None
在估计值附近绘制置信区间的大小,如果是"sd",
则跳过bootstrapping并绘制观察的标准差,
如果为None,则不执行bootstrapping,并且不绘制错误条。

n_boot:int
计算置信区间时使用的引导迭代次数

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

color:matplotlib颜色

palette:调试板名称,列表或字典类型
作用:设置hue指定的变量的不同级别颜色。

saturation 饱和度:float

errcolor : matplotlib color
作用:表示置信区间的线条颜色

errwidth:float
作用:表示误差线的厚度

capsize:float
作用:表示误差线上"帽"的宽度(误差线上的横线的宽度)

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

案例教程

代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例1:
指定x分类变量进行分组,指定 y为数据分布,绘制垂直条形图
"""
sns.barplot(x="day", y="total_bill", data=tips)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例2:
指定hue对已分组的数据进行嵌套分组(第二次分组)并绘制条形图
"""
sns.barplot(x="day", y="total_bill", hue="sex", data=tips)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例3:
指定 y 为分类变量进行分组,x 为数据分布 (这样的效果相当于水平条形图)
"""
sns.barplot(x="tip", y="day", data=tips)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例4:
设置order=["变量名1","变量名2",...]来显示指定分类顺序
"""
sns.barplot(x="time", y="tip", data=tips,
            order=["Dinner", "Lunch"])
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例5:
使用中位数作为集中趋势的估计:estimator=median
"""
sns.barplot(x="day", y="tip", data=tips, estimator=median)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例6:
使用误差线显示均值的标准差
"""
sns.barplot(x="day", y="tip", data=tips, ci=68)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例7:
设置ci="sd" 显示观测值的标准偏差而不是置信区间
"""
sns.barplot(x="day", y="tip", data=tips, ci="sd")
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例8:
设置 capsize,如果capsize>0则添加 caps到错误条上,否则没有错误条
"""
sns.barplot(x="day", y="tip", data=tips, capsize=.2)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例9:
使用不同的调色版:palette="Blues_d"
"""
sns.barplot("size", y="total_bill", data=tips,
            palette="Blues_d")
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例10:
使用不同的调色版
"""
tips["weekend"] = tips["day"].isin(["Sat", "Sun"])
sns.barplot(x="day", y="total_bill", hue="weekend",
            data=tips, dodge=False)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例11:
设置color指定所有bar使用同一颜色
"""
sns.barplot("size", y="total_bill", data=tips,
            color="salmon", saturation=.5)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例12:
linewidth:线宽
facecolor:封闭区域内部的颜色: facecolor=(R, G, B, A),
edgecolor:边颜色
"""
sns.barplot("day", "total_bill", data=tips,
            linewidth=2.5, facecolor=(1, 1, 1, 0),
             errcolor=".2",edgecolor=".3")
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例13:
使用catplot()实现barplot()的效果(通过指定kind=bar)
"""
sns.catplot(x="sex", y="total_bill",
            hue="smoker", col="time",
            data=tips, kind="bar",
            height=4, aspect=.7)
plt.show()

案例地址

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

整理制作:数据分析与可视化学研社

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 条形图
  • 函数原型
  • 参数解读
  • 案例教程
  • 案例地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档