news 2026/8/11 1:48:05

matplotlib(6)-水平柱状图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
matplotlib(6)-水平柱状图

横向柱状图的核心函数是plt.barh()

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

1.水平柱状图与垂直柱状图的区别

1.1. 核心函数区别

  • 垂直柱状图plt.bar()
  • 水平柱状图plt.barh()(h = horizontal)

1.2. 坐标轴对应关系(最关键)

垂直柱状图plt.bar(x, height)

  • x:横轴(类别 / 位置)
  • height:柱子高度(纵轴数值)
  • 柱子是竖直向上

水平柱状图plt.barh(y, width)

  • y:纵轴(类别 / 位置)
  • width:柱子长度(横轴数值)
  • 柱子是水平向右

2.绘制水平柱状图参数

2.1.必选参数

参数说明
y柱形对应的 y 轴标签 / 位置(可以是类别字符串、数值序列,如['A','B','C']
width柱形的长度(即 x 轴数值,决定柱子的长短)

2.2.常用可选参数

参数说明
height柱形的宽度(横向显示时,控制柱子的 “粗细”,默认0.8
left柱形的起始 x 坐标(用于堆叠图,默认0
align柱形在 y 轴上的对齐方式,可选'center'(默认)或'edge'
color柱形填充颜色(可以是单一颜色,也可以是颜色列表)
edgecolor柱形边框颜色
linewidth柱形边框宽度
label图例标签(用于多组数据对比)

3.绘制横向柱状图

3.1基础绘制

import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei']#用黑体显示中文 plt.rcParams['axes.unicode_minus'] = False#解决负号异常 data = ['苹果','香蕉','橙子','葡萄'] sales = [120,90,80,150] plt.barh(data,sales,color='r',height=0.5)#color颜色英文首字母,height宽度 plt.title('水果销量对比', fontsize=14)#标题 plt.xlabel('销量(件)', fontsize=12)#x轴标签 plt.ylabel('水果种类', fontsize=12)#y轴标签 plt.show()

图片展示:

3.2水平堆叠柱状图

import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei']#用黑体显示中文 plt.rcParams['axes.unicode_minus'] = False#解决负号异常 data = ['苹果','香蕉','橙子','葡萄'] sales = [120,90,80,150] tar_sales = [150,50,40,130] plt.barh(data,sales,color='r',height=0.5,label="超市") plt.barh(data,tar_sales,color='b',height=0.5,label="目标") plt.title('水果销量(距目标)', fontsize=14)#标题 plt.xlabel('销量(件)', fontsize=12)#x轴标签 plt.ylabel('水果种类', fontsize=12)#y轴标签 plt.legend()# 显示图例(关键:区分两种超市),没有这个显示不了label plt.show()

图片展示:

3.3水平分组柱状图

import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] # 用黑体显示中文 plt.rcParams['axes.unicode_minus'] = False # 解决负号异常 data = ['苹果','香蕉','橙子','葡萄'] sales = [120,90,80,150] sales2 = [150,50,40,130] # 1. 生成数字形式的Y轴基准位置(替代直接用字符串data) y_pos = np.arange(len(data)) # 2. 定义单组柱子的粗细(建议0.3~0.4,避免重叠) bar_height = 0.35 # 3. 两组柱子分别向基准位置上下偏移,实现并列 plt.barh(y_pos - bar_height/2, sales, color='r', height=bar_height, label="超市1") plt.barh(y_pos + bar_height/2, sales2, color='b', height=bar_height, label="超市2") # 4. 把Y轴的数字位置替换回原始水果类别字符串 plt.yticks(y_pos, data) # ----------------------------------------------- plt.title('水果销量', fontsize=14)#标题 plt.xlabel('销量(件)', fontsize=12)#x轴标签 plt.ylabel('水果种类', fontsize=12)#y轴标签 plt.legend() plt.show()

图片展示:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/10 11:59:32

CNN架构师的工具箱:超参数调优的隐藏艺术

CNN架构师的工具箱:超参数调优的隐藏艺术 当你在构建卷积神经网络时,是否曾遇到过这样的困境:模型在训练集上表现优异,却在测试集上频频失手?或者明明采用了最先进的网络架构,却始终无法突破某个准确率瓶颈…

作者头像 李华
网站建设 2026/7/24 5:09:17

智能家居联动实验:识别物体后自动触发设备动作

智能家居联动实验:识别物体后自动触发设备动作 1. 引言:让家真正“看懂”你想要什么 你有没有试过这样的场景: 刚拎着一袋水果进门,手机还没掏出来,玄关灯就自动亮起,厨房的空气净化器悄悄启动&#xff0…

作者头像 李华
网站建设 2026/8/9 12:54:49

AI智能二维码工坊实战部署:Nginx反向代理配置教程

AI智能二维码工坊实战部署:Nginx反向代理配置教程 1. 为什么需要Nginx反向代理? 你已经成功拉起AI智能二维码工坊镜像,点击HTTP按钮就能直接访问WebUI——这很爽,但只适合本地测试。一旦要让团队成员、客户或外部系统稳定调用&a…

作者头像 李华
网站建设 2026/8/9 20:12:16

mptools v8.0数据可视化功能图解说明

以下是对您提供的博文《mptools v8.0 数据可视化功能深度技术解析》的 全面润色与优化版本 。本次优化严格遵循您的要求: ✅ 彻底去除AI痕迹 :摒弃模板化表达、空洞术语堆砌,代之以真实工程师视角下的思考节奏、经验判断与现场语感; ✅ 强化技术纵深与教学逻辑 :将…

作者头像 李华
网站建设 2026/8/9 10:54:14

WS2812B全彩LED灯带驱动编程实战:从原理到应用

1. WS2812B灯带基础入门 第一次接触WS2812B灯带时,我被它的"单线控制"特性惊艳到了——只需要一根数据线就能控制上百个LED的颜色变化。这种5050封装的智能LED灯珠,内部集成了驱动芯片和RGB三色LED,让灯光项目开发变得异常简单。 …

作者头像 李华
网站建设 2026/8/9 23:57:19

实测SGLang的约束解码能力:正则表达式真香

实测SGLang的约束解码能力:正则表达式真香 1. 为什么结构化输出不再靠“猜”和“修” 你有没有遇到过这样的场景:调用大模型生成JSON,结果返回了一段带语法错误的字符串;让模型提取订单号,它却在回复里夹杂了大段解释…

作者头像 李华