Python3使用Matplotlib绘制条形图的完整指南

码头散步
码头散步
发布时间:2026-10-13 | 6人浏览过
原创

本文详细介绍如何在Python3中利用Matplotlib库绘制不同类型的条形图。内容涵盖竖状条形图、横状条形图的绘制方法及参数设置,重点解析barh()函数的使用及横竖条形图的区别,并提供多组数据对比条形图的实现代码与效果展示,帮助开发者快速掌握数据可视化技巧。

竖状条形图绘制

本文分享Python3结合Matplotlib库绘制条形图的具体实现代码,供读者参考学习。

首先介绍竖状条形图的绘制方法。

具体实现代码如下。


from matplotlib import pyplot as plt
from matplotlib import font_manager


my_font = font_manager.FontProperties(fname="/usr/share/fonts/truetype/arphic/ukai.ttc")
a = ["战狼2", "速度与激情8", "功夫瑜伽", "西游伏妖篇", "变形金刚5:最后的骑士", "摔跤吧!爸爸", "加勒比海盗5:死无对证", "金刚:骷髅岛", "极限特工:终极回归", "生化危机6:终章",
 "乘风破浪", "神偷奶爸3", "智取威虎山", "大闹天竺", "金刚狼3:殊死一战", "蜘蛛侠:英雄归来", "悟空传", "银河护卫队2", "情圣", "新木乃伊", ]

b = [56.01, 26.94, 17.53, 16.49, 15.45, 12.96, 11.8, 11.61, 11.28, 11.12, 10.49, 10.3, 8.75, 7.55, 7.32, 6.99, 6.88,
 6.86, 6.58, 6.23]
plt.figure(figsize=(15,7))
# 绘制条形图
plt.bar(range(len(a)),b,width=0.3)
# 对应x轴与字符串
plt.xticks(range(len(a)),a,fontproperties=my_font,rotation=90)
plt.savefig("./bar1.png")
plt.show()

运行上述代码可得到相应的竖状条形图效果。

横状条形图绘制

接下来演示横状条形图的绘制方式。

横状条形图的实现代码如下。


# 绘制横着的条形图
from matplotlib import pyplot as plt
from matplotlib import font_manager

my_font = font_manager.FontProperties(fname="/usr/share/fonts/truetype/arphic/ukai.ttc")
a = ["战狼2", "速度与激情8", "功夫瑜伽", "西游伏妖篇", "变形金刚5:最后的骑士", "摔跤吧!爸爸", "加勒比海盗5:死无对证", "金刚:骷髅岛", "极限特工:终极回归", "生化危机6:终章",
 "乘风破浪", "神偷奶爸3", "智取威虎山", "大闹天竺", "金刚狼3:殊死一战", "蜘蛛侠:英雄归来", "悟空传", "银河护卫队2", "情圣", "新木乃伊", ]

b = [56.01, 26.94, 17.53, 16.49, 15.45, 12.96, 11.8, 11.61, 11.28, 11.12, 10.49, 10.3, 8.75, 7.55, 7.32, 6.99, 6.88,
 6.86, 6.58, 6.23]
plt.figure(figsize=(15, 7))
# 绘制条形图
plt.barh(range(len(a)), b, height=0.3,color='orange')
# 对应x轴与字符串
plt.yticks(range(len(a)), a, fontproperties=my_font, rotation=0)
# 添加网格 alpha参数是设置网格的透明度的
plt.grid(alpha=0.3)
# 保存图片
plt.savefig("./bar1.png")
plt.show()

执行该代码将生成对应的横状条形图视觉效果。

需要特别注意的是,横状与竖状条形图的主要区别在于横状图采用方法,且其参数传递顺序需严格遵循该方法的定义。


def barh(y, width, height=0.8, left=None, *, align='center', **kwargs):

多组条形图绘制

此外,还可以绘制包含多组数据的条形图以进行对比分析。

多组条形图的实现代码如下。


from matplotlib import pyplot as plt
from matplotlib import font_manager

myfont = font_manager.FontProperties(fname="/usr/share/fonts/truetype/arphic/ukai.ttc")
a = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]

bar_width = 0.25
x_14 = list(range(len(a)))
x_15 = list(i+bar_width for i in x_14)
x_16 = list(i+bar_width for i in x_15)
# 设置图形大小
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(a)),b_14,width=bar_width,label="9月14日")
plt.bar(x_15,b_15,width=bar_width,label="9月15日")
plt.bar(x_16,b_16,width=bar_width,label="9月16日")
# 设置图例
plt.legend(prop=myfont)
# 设置x轴刻度
plt.xticks(x_15,a,fontproperties=myfont)
plt.savefig("./mutiy.png")
plt.show()

运行代码后可看到多组数据对比的条形图效果。

以上内容即为本文的全部介绍,希望能为读者的学习提供有益帮助,同时也欢迎大家继续支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表