为了账号安全,请及时绑定邮箱和手机立即绑定

每月频率的Python直方图

每月频率的Python直方图

缥缈止盈 2021-04-01 18:15:12
我需要使用matplotlib在Python中制作直方图。我的数据是每月发生的事件频率的元组,如下所示,其中x轴应显示月份,y轴应显示频率。有人可以帮忙吗?[('Jun-07', 10), ('Jun-08', 15), ('Jun-09', 16), ('Nov-07', 17), ('Nov-08', 16), ('Nov-09', 14), ('May-11', 16), ('May-10', 18), ('May-13', 14), ('May-12', 14), ('May-14', 12), ('Jun-14', 10), ('Jun-11', 14), ('Jun-10', 19), ('Jun-13', 13), ('Jun-12', 14), ('Feb-09', 10), ('Nov-14', 10), ('Nov-13', 12), ('Nov-12', 13)]
查看完整描述

2 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

如果您想要相对于月份的直方图,则应执行以下操作:


import calendar

dmonths = dict((v,k) for k,v in enumerate(calendar.month_abbr))


import numpy as np

from matplotlib import pyplot as plt


list1 = [('Jun-07', 10),

 ('Jun-08', 15),

 ('Jun-09', 16),

 ('Nov-07', 17),

 ('Nov-08', 16),

 ('Nov-09', 14),

 ('May-11', 16),

 ('May-10', 18),

 ('May-13', 14),

 ('May-12', 14),

 ('May-14', 12),

 ('Jun-14', 10),

 ('Jun-11', 14),

 ('Jun-10', 19),

 ('Jun-13', 13),

 ('Jun-12', 14),

 ('Feb-09', 10),

 ('Nov-14', 10),

 ('Nov-13', 12),

 ('Nov-12', 13)]


list2 = [dmonths[x[0][:3]] for x in list1]

list3 = [x[1] for x in list1]


plt.hist(np.array(list2), bins=np.array(range(1,12)), weights=np.array(list3))

前两行提供了从月份到整数的查找表。然后,您只需要提取月份的名称,将它们转换为整数,然后绘制以值作为权重的直方图即可。


查看完整回答
反对 回复 2021-04-09
  • 2 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号