加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

用matplotlib怎样画双柱状图 代码为什么

发布时间:2023-08-31 11:15:33 所属栏目:语言 来源:
导读:今天就跟大家聊聊有关“用matplotlib怎样画双柱状图,代码是什么”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“用matplotlib怎样画双柱状图

今天就跟大家聊聊有关“用matplotlib怎样画双柱状图,代码是什么”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“用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()

扩展功能及代码:

扩展功能一

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

plt.xticks(x, listDate)

可以改为:

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

扩展功能二

如果希望具体的数据值展示在柱状图中,可以在代码 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()

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

“用matplotlib怎样画双柱状图,代码是什么”的内容就介绍到这里了,感谢大家的阅读。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章