Python Matplotlib绘制垂直与水平条形图实战指南
本文详解如何使用Python Matplotlib库绘制垂直与水平条形图。通过具体销售案例,展示bar()与barh()函数的用法,包括颜色、透明度及刻度设置。重点解决Matplotlib中文显示乱码问题,并提供完整代码示例,帮助开发者快速掌握数据可视化技巧。
条形图是数据可视化中极为常见的图表类型,广泛应用于各类演示文稿中,深受专业人士青睐。它能够直观、清晰地呈现不同场景下的数值对比关系。在Python的Matplotlib库中,bar()函数专门用于绘制此类条形图。
接下来,我们将通过一个具体案例来演示条形图的绘制过程。
假设某销售公司需要在演示文稿中展示4位员工的年度销售业绩。我们需要使用条形图来呈现小红、小王、小李和小张四位员工的业绩数据,具体数值分别为260万元、300万元、310万元和269万元。
在图表中添加中文标签时,Matplotlib默认配置可能无法正确显示中文字符。为了解决这一问题,需要在绘图代码前进行如下设置,以确保中文标签和负号能正常显示。
1、垂直条形图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
member = [u'小红', u'小王', u'小李', u'小张']
sales = [260, 300, 310, 269]
# 绘图
plt.bar(range(4), sales, align='center', color='steelblue', alpha=0.7)
# 添加Y轴标签
plt.ylabel(u'年度销售额(万元)')
# 添加标题
plt.title(u'员工年度销售额对比')
# 添加刻度标签
plt.xticks(range(4), member)
# 设置Y轴的刻度范围
plt.ylim([200, 350])
# 在没有条形图上方添加数值标签
for x, y in enumerate(sales):
plt.text(x, y+10, '%s' % round(y, 1), ha='center')
# %s,表示格式化一个对象为字符
#round( x [, n] )
# x -- 数值表达式。
# n -- 数值表达式,表示从小数点位数。
plt.show()

在上述代码中,bar()函数用于设置x轴的刻度标签水平居中,条形图的填充颜色设定为铁蓝色(steelblue),同时通过alpha参数将透明度设置为0.7。
2、水平条形图
若要将垂直条形图转换为水平条形图,只需将bar()函数替换为barh()函数,并相应调整坐标轴标签及刻度设置即可实现。
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
member = [u'小红', u'小王', u'小李', u'小张']
sales = [260, 300, 310, 269]
# 绘图
plt.barh(range(4), sales, align='center', color='steelblue', alpha=0.7)
# 添加Y轴标签
plt.xlabel(u'年度销售额(万元)')
# 添加标题
plt.title(u'员工年度销售额对比')
# 添加刻度标签
plt.yticks(range(4), member)
# 设置Y轴的刻度范围
plt.xlim([200, 350])
# 在没有条形图上方添加数值标签
for x, y in enumerate(sales):
plt.text(y+10, x, '%s' % y, va='center')
# %s,表示格式化一个对象为字符
plt.show()

总结
本文介绍到此结束,希望能为您的学习提供帮助。如果您喜欢更多内容,欢迎持续关注本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













