使用matplotlib绘制条形图

今天讲讲用matplotlib绘制条形图,比如我们要显示几部电影的票房

from matplotlib import pyplot as plt
from  matplotlib import font_manager
a=["战狼2","哪吒之魔童降世","流浪地球","复仇者联盟4:终局之战","红海行动","美人鱼","唐人街探案2","我和我的祖国","我不是药神","中国机长"]
my_font=font_manager.FontProperties(fname='C:/Windows/WinSxS/amd64_microsoft-windows-f..-microsoftyaheibold_31bf3856ad364e35_10.0.18362.1_none_e1230363312b5372/msyhbd.ttc')

b=[56.39,49.34,46.18,42.05,36.22,33.9,33.71,31.46,30.75,28.84]
list.reverse(b)
list.reverse(a)
plt.figure(figsize=(20,15),dpi=100)
plt.xticks(range(1,11),a,fontproperties=my_font,rotation=45)
#plt.yticks(range(1,13))

plt.bar(range(1,11),b)


plt.show()

结果如下图
在这里插入图片描述
我们发现如果名字太长可能就不能和图形对应了,所以我们可以把他画成横的

from matplotlib import pyplot as plt
from  matplotlib import font_manager
my_font=font_manager.FontProperties(fname='C:/Windows/WinSxS/amd64_microsoft-windows-f..-microsoftyaheibold_31bf3856ad364e35_10.0.18362.1_none_e1230363312b5372/msyhbd.ttc')
a=["战狼2","哪吒之魔童降世","流浪地球","复仇者联盟4:终局之战","红海行动","美人鱼","唐人街探案2","我和我的祖国","我不是药神","中国机长"]

b=["56.39","49.34","46.18","42.05","36.22","33.9","33.71","31.46","30.75","28.84"]
list.reverse(b)
list.reverse(a)
plt.figure(figsize=(20,8),dpi=80)
plt.yticks(range(1,11),a,fontproperties=my_font)
plt.xticks(range(10,60,10))


plt.xlabel("票房",fontproperties=my_font)
plt.title("票房统计",fontproperties=my_font)


plt.barh(range(1,11),b,height=0.7,color="orange")

plt.show()

注意:在控制柱子宽度时,图是横的,就用height,图是竖的,就用width
在这里插入图片描述
我们也可以绘制多组条形图,比如要比较三部电影在四天的票房对比。

from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font=font_manager.FontProperties(fname='C:/Windows/WinSxS/amd64_microsoft-windows-f..-microsoftyaheibold_31bf3856ad364e35_10.0.18362.1_none_e1230363312b5372/msyhbd.ttc')
a=["战狼2","哪吒之魔童降世","流浪地球","复仇者联盟4:终局之战"]
t_14=[1234,3213,1233,4221]
t_15=[3221,3233,4322,1221]
t_16=[3452,1342,1343,1111]
plt.figure(figsize=(20,8),dpi=80)
bar_height=0.2
a_y=list(range(4))
b_y=[i+bar_height for i in a_y]
c_y=[i+bar_height*2 for i in a_y]
plt.yticks(b_y,a,fontproperties=my_font)
plt.barh(range(4),t_14,height=0.2,label="14日")

plt.barh(b_y,t_15,height=0.2,label="15日")
plt.barh(c_y,t_16,height=0.2,label="16日")
plt.legend(prop=my_font)

plt.show()

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值