news 2026/6/25 3:08:25

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/6/22 5:30:10

毕业设计实战指南:如何用嵌入式系统打造高性价比温湿度监控方案

毕业设计实战指南:如何用嵌入式系统打造高性价比温湿度监控方案 1. 项目背景与核心挑战 在农业大棚、实验室环境、仓储管理等场景中,温湿度监控系统的需求日益增长。传统人工检测方式存在效率低、误差大等缺陷,而市面上的专业设备往往价格昂…

作者头像 李华
网站建设 2026/6/19 15:57:24

LVGL图形界面开发教程:线条与基本图形绘制指南

以下是对您提供的博文内容进行 深度润色与专业重构后的版本 。我以一位深耕嵌入式GUI开发十年、常年在STM32/ESP32平台一线带项目的技术博主身份,用更自然、更具教学感和工程现场气息的语言重写全文—— 彻底去除AI腔调、模板化结构与空泛术语堆砌 ,代之以真实开发中会遇…

作者头像 李华
网站建设 2026/6/17 17:33:57

说话太快影响识别吗?语速与准确率关系测试

说话太快影响识别吗?语速与准确率关系测试 [toc] 你有没有遇到过这样的情况:开会时语速一快,语音转文字就满屏错字?录播课讲得激情澎湃,结果识别结果像在猜谜?很多人下意识觉得“说快点省时间”&#xff…

作者头像 李华
网站建设 2026/6/10 14:00:55

LightOnOCR-2-1B法律科技进阶:OCR识别结果对接NLP实体抽取与条款比对

LightOnOCR-2-1B法律科技进阶:OCR识别结果对接NLP实体抽取与条款比对 1. 为什么法律场景特别需要高质量OCR 法律文档处理一直是个让人头疼的活儿。合同、判决书、起诉状、证据材料——这些文件往往格式复杂、字体多样、扫描质量参差不齐,还经常夹杂表格…

作者头像 李华
网站建设 2026/6/12 23:58:47

基于文本描述的动作生成:HY-Motion 1.0精准控制技巧

基于文本描述的动作生成:HY-Motion 1.0精准控制技巧 你有没有试过这样的情景:在3D动画项目里,为了一个“单膝跪地后缓缓起身、右手向斜上方伸展”的动作,反复调整关键帧、调试IK权重、检查骨骼旋转——一上午过去,只调…

作者头像 李华