当前位置:   article > 正文

matplotlib可视化之柱状图plt.bar()

plt.bar
  • 在本期内容中,我们先从柱状图(条形图)开始,柱状图实际上是用来表示分组(或离散)变量的可视化,可以使用matplotlib模块中的bar函数完成柱状图的绘制。
  • 函数功能:柱状图,寻找各类别之间的关系
  • 调用方法:plt.bar(x, y, width,color, edgecolor, bottom, linewidth, align, tick_label, align)
  • 参数说明:
    • x:指定x轴上数值
    • y:指定y轴上的数值
    • width:表示柱状图的宽度,取值在0~1之间,默认为0.8
    • color:柱状图的填充色
    • edgecolor:柱状图的边框颜色
    • bottom:柱状图底部离横轴的距离
    • linewidth:柱状图边框宽度
    • tick_label:柱状图的刻度标签,也可直接将标签赋值给x
    • align:指定x轴上对齐方式,"center","lege"边缘 
  1. # 准备数据
  2. xiaoming_score = [80,75,65,58,75,80,90] #小明各科成绩
  3. xiaohong_score =[90,85,75,62,75,60,80] #小红各科成绩
  4. subjects = ['语文','英语','数学','物理','化学','生物','体育']

 使用各种参数:

  1. plt.bar(x = np.arange(7), # 横坐标
  2. height = xiaoming_score, # 柱状高度
  3. width = 0.35, # 柱状宽度
  4. label = '小明', # 标签
  5. edgecolor = 'k', # 边框颜色
  6. color = 'r', # 柱状图颜色
  7. tick_label = subjects, # 每个柱状图的坐标标签
  8. linewidth= 3) # 柱状图边框宽度
  9. plt.legend() #显示标签
  10. plt.show()

 水平柱状图:plt.barh()

 簇状条形图:通过控制横轴坐标绘图

  1. # 绘图
  2. plt.figure(figsize = (10,7))
  3. bar1 = plt.bar(x = np.arange(7),height = xiaoming_score,width = 0.35,label = '小明',edgecolor = 'white',color = 'r',tick_label = subjects)
  4. bar2 = plt.bar(x = np.arange(7)+0.35,height = xiaohong_score,width = 0.35,label = '小红')
  5. # 标注数值 注:老版本可能没有这个方法,得使用下方做法
  6. plt.bar_label(bar1)
  7. plt.bar_label(bar2)
  8. # 补充标题及标签
  9. plt.title('小明、小红各科成绩对比') # 图的标题
  10. plt.xlabel('科目',fontsize = 15) # 横轴标签
  11. plt.ylabel('成绩',fontsize = 15) # 纵轴标签
  12. plt.xticks(np.arange(7)+0.17,subjects,fontsize = 12) # 柱状图横轴坐标各类别标签
  13. plt.legend() # 显示两组柱状图的标签
  14. # # 老方法:注释各柱状图的数值,在这里即分数
  15. # for i in range(len(subjects)):
  16. # plt.text(x = i-0.1, y = xiaoming_score[i]+1,s = xiaoming_score[i] ) # s表示注释内容
  17. # for i in range(len(subjects)):
  18. # plt.text(x = i+0.3, y = xiaohong_score[i]+1,s = xiaohong_score[i] )
  19. # 显示图像
  20. plt.show()

堆叠条形图:通过bottom参数

  1. # 绘图
  2. bar1= plt.bar(x = subjects, height = xiaoming_score, label = '小明', color = 'steelblue', alpha = 0.8, width = 0.35)
  3. bar2 = plt.bar(x = subjects, height = xiaohong_score, label = '小红', color = 'indianred', alpha = 0.8, width = 0.35, bottom=xiaoming_score)
  4. # 标注数值,注:较老版本可能没有此方法,得尝试后面做法
  5. plt.bar_label(bar1,padding=-70)
  6. plt.bar_label(bar2,padding=-70)
  7. # 补充标题及标签
  8. plt.title('小明、小红各科成绩对比') # 图的标题
  9. plt.xlabel('科目',fontsize = 15) # 横轴标签
  10. plt.ylabel('成绩',fontsize = 15) # 纵轴标签
  11. plt.xticks(np.arange(7),subjects,fontsize = 12) # 柱状图横轴坐标各类别标签
  12. plt.legend() # 显示两组柱状图的标签
  13. # 老做法:注释各柱状图的数值,在这里即分数
  14. # for i in range(len(subjects)):
  15. # plt.text(x = i-0.1, y = xiaoming_score[i]-30,s = xiaoming_score[i] )
  16. # for i in range(len(subjects)):
  17. # plt.text(x = i-0.1, y = xiaohong_score[i]+30,s = xiaohong_score[i] )
  18. plt.show()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/426612
推荐阅读
相关标签
  

闽ICP备14008679号