大蟒蛇python教程共享python如何利用matplotlib绘制并列双柱状图并标注数值

项目场景:

python项目需要画两组数据的双柱状图,以下以一周七天两位小朋友吃糖颗数为例进行演示,用matplotlib库实现

代码:

import matplotlib  import matplotlib.pyplot as plt  import numpy as np    def drawhistogram():      matplotlib.rc("font", family='microsoft yahei')      list1 = np.array([5, 2, 1, 0, 8, 0, 6])   # 柱状图第一组数据      list2 = np.array([9, 5, 1, 2, 9, 2, 0])   # 柱状图第二组数据      length = len(list1)      x = np.arange(length)   # 横坐标范围      listdate = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"]        plt.figure()      total_width, n = 0.8, 2   # 柱状图总宽度,有几组数据      width = total_width / n   # 单个柱状图的宽度      x1 = x - width / 2   # 第一组数据柱状图横坐标起始位置      x2 = x1 + width   # 第二组数据柱状图横坐标起始位置        plt.title("一周每天吃悠哈软糖颗数柱状图")   # 柱状图标题      # plt.xlabel("星期")   # 横坐标label 此处可以不添加      plt.ylabel("吃悠哈软糖颗数(个)")   # 纵坐标label      plt.bar(x1, list1, width=width, label="小s吃糖数")      plt.bar(x2, list2, width=width, label="小y吃糖数")      plt.xticks(x, listdate)   # 用星期几替换横坐标x的值      plt.legend()   # 给出图例      plt.show()    if __name__ == '__main__':      drawhistogram()  

效果图:

python如何利用matplotlib绘制并列双柱状图并标注数值

扩展功能及代码:

扩展功能一

如果横坐标标签比较长或是文字比较多,以一定角度倾斜展示,上文中代码这一行:

plt.xticks(x, listdate)  

可以改为:

plt.xticks(x, listdate, rotation=30) # rotation为标签旋转角度

横坐标标签旋转30°效果如下:

python如何利用matplotlib绘制并列双柱状图并标注数值

横坐标标签旋转90°效果如下:

python如何利用matplotlib绘制并列双柱状图并标注数值

扩展功能二

如果希望具体的数据值展示在柱状图中,可以在代码 plt.legend() 前加入如下代码:

for a, b in zip(x1, list1):  	plt.text(a, b + 0.1, '%.0f' % b, ha='center', va='bottom', fontsize=7)    for a, b in zip(x2, list2):  	plt.text(a, b + 0.1, '%.0f' % b, ha='center', va='bottom', fontsize=7)  

加了具体数值的柱状图效果如下:

python如何利用matplotlib绘制并列双柱状图并标注数值

补充:python画图实现同一结点多个柱状图

import numpy as np  x = [1,2]   #横坐标  y = [3,4]   #第一个纵坐标  y1 = [5,6]   #第二个纵坐标  x = np.arange(len(x))  #首先用第一个的长度作为横坐标  width = 0.05    #设置柱与柱之间的宽度  fig,ax = plt.subplots()  ax.bar(x,y,width,alpha = 0.9)  ax.bar(x+width,y1,width,alpha = 0.9,color= 'red')  ax.set_xticks(x +width/2)#将坐标设置在指定位置  ax.set_xticklabels(x)#将横坐标替换成  plt.show()  

python如何利用matplotlib绘制并列双柱状图并标注数值

后续有时间再继续补充扩展功能哦~

总结

到此这篇关于python如何利用matplotlib绘制并列双柱状图并标注数值的文章就介绍到这了,更多相关python matplotlib绘制并列双柱状图内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多python教程分享python如何利用matplotlib绘制并列双柱状图并标注数值,都可以关注python教程分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/pythontutorial/1085428.html

(0)
上一篇 2022年4月29日
下一篇 2022年4月29日

精彩推荐