您现在的位置是:网站首页> 编程资料编程资料
python如何利用matplotlib绘制并列双柱状图并标注数值_python_
2023-05-26
394人已围观
简介 python如何利用matplotlib绘制并列双柱状图并标注数值_python_
项目场景:
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() 效果图:

扩展功能及代码:
扩展功能一
如果横坐标标签比较长或是文字比较多,以一定角度倾斜展示,上文中代码这一行:
plt.xticks(x, listDate)
可以改为:
plt.xticks(x, listDate, rotation=30) # rotation为标签旋转角度
横坐标标签旋转30°效果如下:

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

扩展功能二
如果希望具体的数据值展示在柱状图中,可以在代码 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画图实现同一结点多个柱状图
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+Pyqt5实现串口调试助手_python_
- python数据处理之Pandas类型转换的实现_python_
- Python实现将多张图片合成视频并加入背景音乐_python_
- Python+FuzzyWuzzy实现模糊匹配的示例详解_python_
- 详解如何基于Pyecharts绘制常见的直角坐标系图表_python_
- 如何利用Pandas删除某列指定值所在的行_python_
- PyTorch模型保存与加载实例详解_python_
- Python实现视频画质增强的示例代码_python_
- python实现单机五子棋对战游戏_python_
- python神经网络学习使用Keras进行简单分类_python_
