利用 matplotlib 制作条形图

Jade ·
更新时间:2024-09-20
· 670 次阅读

利用 matplotlib 制作条形图 排列在工作表的列或行中的数据可以绘制到柱状图(条形图)中。 特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)

我们用一个例子来描述利用matplotlib怎样制作条形图。
例:假设你获取到了2019年内地电影票房前20的电影(列表a)和电影票房数据(列表b),请展示该数据。

1、纵向条形图: from matplotlib import pyplot as plt from matplotlib import font_manager #a和b为分别的两类数据,展示为两个不同的条形图 a = ['流浪地球','疯狂的外星人','飞驰人生','大黄蜂','熊出没-原始时代','新喜剧之王'] b = [38.13,19.85,14.89,11.36,6.47,5.93] #设置字体 my_font = font_manager.FontProperties(fname='F:/HYTianZhenTi.ttf',size=10) plt.figure(figsize=(20,8),dpi=80)

在这里插入图片描述
在条形图中,还可以指定显示的颜色,以及在每个条形图上显示对应的数据等。

from matplotlib import pyplot as plt from matplotlib import font_manager a = ['流浪地球','疯狂的外星人','飞驰人生','大黄蜂','熊出没-原始时代','新喜剧之王'] b = [38.13,19.85,14.89,11.36,6.47,5.93] my_font = font_manager.FontProperties(fname='F:/HYTianZhenTi.ttf',size=20) plt.figure(figsize=(20,8),dpi=80) # #绘制条形图 #这是在给b列表的数据设置颜色,分别为red,green等,可以进行缩写。 rects = plt.bar(a,[float(i) for i in b], width=0.3, color=['r','g','b','r','g','b']) #设置x,y轴的刻度,x轴为a列表的数据即电影名称 plt.xticks(range(len(a)), a, fontproperties=my_font) plt.yticks(range(0,41,5), range(0,41,5)) #设置x轴和y轴的名称 plt.xlabel('电影',fontproperties=my_font) plt.ylabel('票房',fontproperties=my_font) #在条形图上加标注(水平居中) for rect in rects: height = rect.get_height() plt.text(rect.get_x() + rect.get_width() / 2, height + 0.3, str(height), ha='center') plt.show()

在这里插入图片描述

2、横向条形图: from matplotlib import pyplot as plt from matplotlib import font_manager a = ['流浪地球','疯狂的外星人','飞驰人生','大黄蜂','熊出没-原始时代','新喜剧之王'] b = [38.13,19.85,14.89,11.36,6.47,5.93] my_font = font_manager.FontProperties(fname='F:/HYTianZhenTi.ttf',size=10) plt.figure(figsize=(20,8),dpi=80) #绘制横向条形图 #height=0.5 条形的宽度 rects = plt.barh(range(len(a)),b, height=0.5,color='y') plt.yticks(range(len(a)),a,fontproperties=my_font,rotation=45) plt.xlabel('电影',fontproperties=my_font) plt.ylabel('票房',fontproperties=my_font) #在条形图上加标注(水平居中) for rect in rects: width = rect.get_width() plt.text(width,rect.get_y()+0.3/2, str(width), va='center') plt.show()

在这里插入图片描述

3、并列和罗列条形图: from matplotlib import pyplot as plt import numpy as np index=np.arange(4) BJ=[50,53,55,60] Sh=[44,66,55,41] #并列 plt.bar(index,BJ,width=0.3,color='blue') plt.bar(index+0.3,Sh,width=0.3,color='green') plt.xticks(index+0.3/2,index) #罗列 # plt.bar(index,Sh,bottom=BJ,width=0.3,color='green') plt.show()

在这里插入图片描述
在这里插入图片描述


作者:糖潮丽子~辣丽



matplotlib 条形图

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章