Python使用Matplotlib绘制双柱形图对比数据
本文介绍如何使用Python的Matplotlib库绘制双柱形图,通过具体代码示例展示如何对比两组数据(如学生成绩)。内容涵盖字体配置、柱体宽度设置、图例添加及数据标签显示等关键步骤,帮助开发者快速掌握基础图表定制方法。
图表能够比枯燥的表格更直观地呈现信息,简洁且有力。在实际工作中,我们常需定期监控某些数值指标,例如服务器连接数、活跃用户数量或特定按钮的点击次数,并通过邮件或网页进行展示。当我们需要关注的不仅仅是数值本身,而是数值的变化趋势、对比关系或异常波动时,图表便显得尤为关键。将数值转化为可视化图像需要借助第三方库,而在Python生态中,matplotlib是最优秀的图表库之一。(个人觉得,Python最大的优势在于其丰富的第三方库资源,使得实现各种需求变得轻而易举。)
Matplotlib的名称暗示了其提供了一套与MATLAB相似的API接口。其文档非常完善,示例页面提供了上百种图表的入门代码,可以说只有你想不到的效果,没有它做不到的实现。
这里举一个稍复杂的例子:假设小明和小红两位同学分别有语文、数学和英语三门课程的成绩,我们使用双柱形图来输出他们各项成绩的对比情况:
#!/usr/bin/env python
# coding: utf-8
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
import numpy as np
# 必须配置中文字体,否则会显示成方块
# 注意所有希望图表显示的中文必须为unicode格式
custom_font = mpl.font_manager.FontProperties(fname='/Library/Fonts/华文细黑.ttf')
font_size = 10 # 字体大小
fig_size = (8, 6) # 图表大小
names = (u'小明', u'小红') # 姓名
subjects = (u'语文', u'数学', u'英语') # 科目
scores = ((65, 90, 75), (85, 80, 90)) # 成绩
# 更新字体大小
mpl.rcParams['font.size'] = font_size
# 更新图表大小
mpl.rcParams['figure.figsize'] = fig_size
# 设置柱形图宽度
bar_width = 0.35
index = np.arange(len(scores[0]))
# 绘制「小明」的成绩
rects1 = plt.bar(index, scores[0], bar_width, color='#0072BC', label=names[0])
# 绘制「小红」的成绩
rects2 = plt.bar(index + bar_width, scores[1], bar_width, color='#ED1C24', label=names[1])
# X轴标题
plt.xticks(index + bar_width, subjects, fontproperties=custom_font)
# Y轴范围
plt.ylim(ymax=100, ymin=0)
# 图表标题
plt.title(u'企鹅班同学成绩对比', fontproperties=custom_font)
# 图例显示在图表下方
plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.03), fancybox=True, ncol=5, prop=custom_font)
# 添加数据标签
def add_labels(rects):
for rect in rects:
height = rect.get_height()
plt.text(rect.get_x() + rect.get_width() / 2, height, height, ha='center', va='bottom')
# 柱形图边缘用白色填充,纯粹为了美观
rect.set_edgecolor('white')
add_labels(rects1)
add_labels(rects2)
# 图表输出到本地
plt.savefig('scores_par.png')
最终生成的图表效果如下所示:

总结
通过上述代码片段可以看出:Matplotlib是一个自由度极高的图表库,能够实现从颜色、字体等基础属性到图例、网格等图表属性的定制化输出。
以上就是本文关于Python绘制双柱形图代码实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:
Django admin实现图书管理系统菜鸟级教程完整实例
Python使用PIL进行图像处理(等比例压缩、裁剪)实例代码
Python实现读取TXT文件并绘制三维图简单代码示例
如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













