Python Matplotlib绘制垂直与水平条形图实战指南

不晚
不晚
发布时间:2026-10-15| 5人浏览过
原创

本文详解如何使用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()

总结

本文介绍到此结束,希望能为您的学习提供帮助。如果您喜欢更多内容,欢迎持续关注本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。