目录

  • 条形图
  • 函数原型
  • 参数解读
  • 案例教程
  • 案例地址

    条形图

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

    函数原型

    1. seaborn.barplot(x=None, y=None, hue=None,
    2. data=None, order=None, hue_order=None,
    3. estimator=<function mean>, ci=95,
    4. n_boot=1000, units=None, orient=None,
    5. color=None, palette=None, saturation=0.75,
    6. errcolor='.26', errwidth=None, capsize=None,
    7. dodge=True, ax=None, **kwargs)

    参数解读

    seaborn系列 (14) | 条形图barplot() - 图1
    1. x,y,hue:数据字段变量名(如上表,date,name,age,sex为数据字段变量名)
    2. data: DataFrame,数组或数组列表
    3. order,hue_order:字符串列表
    4. 作用:显式指定分类顺序,eg. order=[字段变量名1,字段变量名2,...]
    5. estimator:可回调函数
    6. 作用:设置每个分类箱的统计函数
    7. ci:float或者"sd"None
    8. 在估计值附近绘制置信区间的大小,如果是"sd"
    9. 则跳过bootstrapping并绘制观察的标准差,
    10. 如果为None,则不执行bootstrapping,并且不绘制错误条。
    11. n_boot:int
    12. 计算置信区间时使用的引导迭代次数
    13. orient: v | h
    14. 图的显示方向(垂直或水平,即横向或纵向),
    15. 这通常可以从输入变量的dtype推断得到
    16. color:matplotlib颜色
    17. palette:调试板名称,列表或字典类型
    18. 作用:设置hue指定的变量的不同级别颜色。
    19. saturation 饱和度:float
    20. errcolor : matplotlib color
    21. 作用:表示置信区间的线条颜色
    22. errwidth:float
    23. 作用:表示误差线的厚度
    24. capsize:float
    25. 作用:表示误差线上"帽"的宽度(误差线上的横线的宽度)
    26. dodge:bool
    27. 作用:使用色调嵌套时,是否应沿分类轴移动元素。

    案例教程

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

    案例地址

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