当前位置: 首页 > backend >正文

一周学会Matplotlib3 Python 数据可视化-绘制条形图(Bar)

锋哥原创的Matplotlib3 Python数据可视化视频教程:

2026版 Matplotlib3 Python 数据可视化 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

课程介绍

本课程讲解利用python进行数据可视化 科研绘图-Matplotlib,学习Matplotlib图形参数基本设置,绘图参数及主要函数,以及Matplotlib基础绘图,和Matplotlib高级绘图。

绘制条形图(Bar)

Matplotlib 的条形图是展示分类数据最常用的图表之一,特别适合比较不同类别的数值大小。以下是条形图的全面介绍及示例代码:

一、核心功能与适用场景

条形图类型:

  • 垂直条形图plt.bar()

  • 水平条形图plt.barh()

  • 分组条形图:多组数据并列比较

  • 堆叠条形图:显示部分与整体关系

适用场景:

  1. 不同类别数据的比较(产品销量、地区收入)

  2. 时间序列数据对比(月度销售额)

  3. 部分与整体关系可视化(堆叠条形图)

plt.bar() 是 Matplotlib 中用于绘制垂直条形图的核心函数。以下是详细解析及示例:

基本语法:

plt.bar(x, height, width=0.8, bottom=None, align='center', **kwargs)
参数说明
x条形的横坐标位置(标量或数组)
height条形的高度(y 轴值,标量或数组)
width条形的宽度(默认 0.8
bottom条形的起始基线高度(用于堆叠条形图,默认从 0 开始)
align对齐方式:'center'(居中,默认)或 'edge'(左对齐)
**kwargs其他样式参数(颜色、边框等)

常用 kwargs 参数

参数说明
color / c条形填充颜色
edgecolor/ec边框颜色
linewidth/lw边框宽度
alpha透明度
label图例标签
hatch填充图案(如 '///'

我们先看一个垂直条形图示例:

import matplotlib
import matplotlib.pyplot as plt
​
# 设置matplotlib使用黑体显示中文
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
​
# 数据准备
categories = ['苹果', '橙子', '香蕉', '葡萄', '芒果']
sales = [45, 32, 28, 51, 39]
​
# 创建图形
plt.figure(figsize=(10, 6))
​
# 绘制条形图
bars = plt.bar(categories,sales,color=['#FF6B6B', '#4ECDC4', '#FFD166', '#A06CD5', '#6CA6CD'],edgecolor='black',linewidth=1.2
)
​
# 添加数据标签
for bar in bars:height = bar.get_height()plt.text(bar.get_x() + bar.get_width() / 2.,height + 0.5,f'{height}',ha='center',va='bottom',fontsize=10)
​
# 设置标题和标签
plt.title('水果销售对比', fontsize=14, pad=20)
plt.xlabel('水果类型', fontsize=12)
plt.ylabel('销售量(千克)', fontsize=12)
plt.grid(axis='y', linestyle='--', alpha=0.7)
​
# 调整布局
plt.tight_layout()
plt.show()

运行效果:

我们再看一个水平条形图示例:

import matplotlib
import matplotlib.pyplot as plt
​
# 设置matplotlib使用黑体显示中文
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
​
# 数据准备
categories = ['苹果', '橙子', '香蕉', '葡萄', '芒果']
sales = [45, 32, 28, 51, 39]
​
plt.figure(figsize=(10, 6))
​
# 绘制水平条形图
bars = plt.barh(categories,sales,color='#5F9EA0',height=0.7
)
​
# 添加数据标签
for bar in bars:width = bar.get_width()plt.text(width + 0.8,bar.get_y() + bar.get_height() / 2,f'{width}',va='center',fontsize=10)
​
plt.title('水果销售对比', fontsize=14)
plt.xlabel('销售量(千克)', fontsize=12)
plt.ylabel('水果类型', fontsize=12)
plt.grid(axis='x', linestyle='--', alpha=0.7)
plt.tight_layout()
plt.show()

运行效果:

http://www.xdnf.cn/news/17450.html

相关文章:

  • 【Vue✨】Vue3 中英文切换功能实现
  • java生成用户登录token
  • 人工智能-python-机器学习-模型选择与调优实战指南:从交叉验证到朴素贝叶斯分类
  • MyBatis的xml中字符串类型判空与非字符串类型判空处理方式
  • Pytorch深度学习框架实战教程12:Pytorch混合精度推理,性能加速147%的技术实现
  • 深度解析Linux设备树(DTS):设计原理、实现框架与实例分析
  • 算术运算符指南
  • 如何用分析方法解决工作中的问题?
  • Day11 原理篇
  • 滚动条开始滚动时,左侧导航固定,当左侧内容触底到footer时左侧内容取消固定并跟随滚动条滚动
  • 【Python 小脚本·大用途 · 第 2 篇】
  • 女子试穿4条裤子留下血渍赔50元引争议:消费责任边界在哪?
  • 【星闪】Hi2821 | UART通用异步收发器 + 串口中断收发例程
  • 【人工智能99问】BERT的原理什么?(23/99)
  • 开启单片机
  • 编程基础之多维数组——矩阵交换行
  • 【YOLOv8改进 - C2f融合】C2f融合Outlook Attention:将细粒度特征编码到 token 中, 提高在图像分类和语义分割等任务中的性能
  • 【算法题】:斐波那契数列
  • 【Python】常用内置模块
  • 安全运维工具链全解析
  • Android快速视频解码抽帧FFmpegMediaMetadataRetriever,Kotlin(2)
  • 大模型开发工具的汇总
  • SQL Server从入门到项目实践(超值版)读书笔记 23
  • cursor, vscode黄色波浪线警告问题
  • 从零到精通:嵌入式BLE开发实战指南
  • 计算机网络:(十四)传输层(下)详细讲解TCP报文段的首部格式,TCP 可靠传输的实现与TCP 的流量控制
  • Mybatis和MybatisPlus的对比区分理解法
  • 基于 RabbitMQ 死信队列+TTL 实现延迟消息+延迟插件基本使用
  • 给AI装上“翻译聚光灯”:注意力机制的机器翻译革命
  • Docker 镜像常见标签(如 `标准`、`slim`、`alpine` 和 `noble`)详细对比