【python画图】:从入门到精通绘制完美柱状图

目录

  • Python数据可视化:从入门到精通绘制完美柱状图
    • 一、基础篇:快速绘制柱状图
      • 1.1 使用Matplotlib基础绘制
      • 1.2 使用Pandas快速绘图
    • 二、进阶篇:专业级柱状图定制
      • 2.1 多系列柱状图
      • 2.2 堆叠柱状图
      • 2.3 水平柱状图
    • 三、专业参数速查表
      • Matplotlib bar() 核心参数
      • 常用方法扩展:
    • 四、专家级技巧
      • 4.1 动态柱状图
      • 4.2 大数据优化
    • 五、最佳实践总结

Python数据可视化:从入门到精通绘制完美柱状图

柱状图是数据可视化中最常用的图表类型之一,本文将带你从基础绘制到高级定制,全面掌握Python绘制柱状图的技巧,并附参数速查表。


一、基础篇:快速绘制柱状图

1.1 使用Matplotlib基础绘制

import matplotlib.pyplot as pltdata = [23, 45, 56, 78, 33]
labels = ['A', 'B', 'C', 'D', 'E']plt.bar(labels, data)
plt.title('Basic Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.show()

效果展示:

在这里插入图片描述

1.2 使用Pandas快速绘图

import matplotlib.pyplot as plt
import pandas as pddf = pd.DataFrame({'Category': ['A', 'B', 'C', 'D'],'Value': [25, 63, 42, 88]
})df.plot(kind='bar', x='Category', y='Value')
plt.show()

效果展示:

在这里插入图片描述


二、进阶篇:专业级柱状图定制

2.1 多系列柱状图

import numpy as np
import matplotlib.pyplot as pltlabels = ['A', 'B', 'C', 'D', 'E']
men_means = [20, 35, 30, 35, 27]
women_means = [25, 32, 34, 20, 25]
x = np.arange(len(labels))plt.bar(x - 0.2, men_means, 0.4, label='Men')
plt.bar(x + 0.2, women_means, 0.4, label='Women')
plt.xticks(x, labels)
plt.legend()
plt.show()

效果展示:

在这里插入图片描述

2.2 堆叠柱状图

plt.bar(labels, data1, label='Series 1')
plt.bar(labels, data2, bottom=data1, label='Series 2')

2.3 水平柱状图

plt.barh(labels, data, height=0.6)

三、专业参数速查表

Matplotlib bar() 核心参数

参数分类参数名称类型作用描述示例值
基本参数xarray-likex轴坐标位置[0,1,2,3]
heightarray-like柱体高度[10,20,30]
widthfloat柱体宽度0.8
样式参数colorstr/list柱体颜色‘blue’ 或 [‘r’,‘g’,‘b’]
edgecolorstr边框颜色‘black’
linewidthfloat边框宽度1.5
alphafloat(0-1)透明度0.7
标签参数tick_labellist坐标轴标签[‘A’,‘B’,‘C’]
labelstr图例标签‘Sales’
布局参数align{‘center’,‘edge’}对齐方式‘center’
orientation{‘v’,‘h’}方向‘v’
高级参数hatchstr填充图案‘/’, ‘O’, ‘x’
error_kwdict误差线参数{‘elinewidth’:2}
logbool对数坐标True

常用方法扩展:

# 添加数值标签
for rect in bars:height = rect.get_height()plt.annotate(f'{height}',xy=(rect.get_x() + rect.get_width()/2, height),ha='center', va='bottom')# 设置样式模板
plt.style.use('ggplot')# 保存高清图
plt.savefig('output.png', dpi=300, bbox_inches='tight')

四、专家级技巧

4.1 动态柱状图

from matplotlib.animation import FuncAnimationfig = plt.figure()
def update(frame):plt.cla()# 更新数据逻辑plt.bar(...)
ani = FuncAnimation(fig, update, frames=100)

4.2 大数据优化

# 使用numpy优化计算
data = np.random.rand(10000)
plt.hist(data, bins=50)  # 直方图变种# 降采样显示
plt.bar(range(0,1000,10), data[::10])

五、最佳实践总结

  1. 配色方案:使用seaborn颜色主题

    import seaborn as sns
    sns.set_palette("husl")
    
  2. 标签处理:自动旋转长标签

    plt.xticks(rotation=45, ha='right")
    
  3. 输出格式:矢量图优先

    plt.savefig('chart.svg', format='svg')
    

通过掌握这些技巧,你可以轻松制作出适合学术论文、商业报告等各种场景的专业级柱状图。建议保存参数速查表作为日常参考,并多加实践不同参数的组合效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/76345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【 解决Cline插件无法激活及DeepSeek模型请求卡顿或者无法加载问题】

解决Cline插件无法激活及DeepSeek模型请求卡顿问题 问题描述 在VSCode中使用Cline插件时遇到以下问题: 插件长时间卡在"activating"激活状态成功激活后发起DeepSeek对话时,API请求阶段持续卡顿夜间时段问题出现频率较低 环境信息 Cline版…

聊透多线程编程-线程互斥与同步-9.C# 线程互斥实现方式

目录 1. 锁机制 (Locking Mechanisms) (1) lock 关键字 (2) Monitor 类 2. 跨进程互斥机制 3. 信号量机制 (1) Semaphore 和 SemaphoreSlim 4. 读写锁机制 (1) ReaderWriterLockSlim 5. 原子操作机制 (1) Interlocked 类 6. 自旋锁机制 (1) SpinLock 线程互斥是一种…

eNSP无法启动AR报错码40,而且按照eNSP帮助手册排查都没用,我的处理方法【自己存档版】

问题: 已经尝试过eNSP的帮助手册,发现都没用! eNSP启动AR设备报错码40且常规排查无效时,可尝试以下解决方案(按优先级排序): 1. 关闭Hyper-V和Windows沙盒(我是这个问题&#xff0…

秒杀系统解决两个核心问题的思路方法总结:1.库存超卖问题;2.用户重复抢购问题。

秒杀系统解决两个核心问题 秒杀系统解决两个核心问题:一、解决库存超卖的核心逻辑:解释:原子性保证: 二、如何避免重复抢购:使用 Redis 做唯一标识判断优点: 三、流程完整梳理:四、通过数据库建…

【集成电路版图设计学习笔记】3.基本电路元件(MOS,电容,电阻)

一、MOSFET 在版图设计中,要定义一个mosfet,最关键的层次是polysilicon(多晶硅)和active(有源区)。用有源区定义了一个矩形的区域,在这个区域内才可以形成一个有源器件,然后再用多晶…

蓝桥杯之差分题型

一维差分 问题描述 给定一个长度为 nn 的序列 aa。 再给定 mm 组操作,每次操作给定 33 个正整数 l,r,dl,r,d,表示对 al∼ral∼r​ 中的所有数增加 dd。 最终输出操作结束后的序列 aa。 Update:由于评测机过快,n,mn,m 于 2024…

深入剖析 C/S 与 B/S 架构及网络通信基础

目录 C/S 架构详解​ 概念与示例​ 优点​ B/S 架构详解​ 概念与示例​ 优势​ 缺点​ C/S 与 B/S 的区别​ 架构组成​ 使用场景​ 开发和维护​ 安全性​ 网络通信基础​ IP 地址​ MAC(物理地址)​ 端口​ 路由器​ 网关​ 子网掩…

常见免杀框架的使用(3款)---【AniYaGUI1.2.0、AV_Evasion_Tool掩日、FoxBypass_V1.0】

一、AniYaGUI1.2.0免杀框架 环境:虚拟机Win10 、云服务器 工具:Xshell、CobaltStrike 项目下载地址: https://github.com/piiperxyz/AniYa 1. 安装Go语言环境 确保Win10虚拟机安装 Golang 且环境变量中包含 go 否则⽆法编译(注…

Apache HTTPD 换行解析漏洞

漏洞介绍 CVE-2017-15715 Apache HTTPD 是一个广泛使用的 HTTP 服务器,可以通过 mod_php 模块来运行 PHP 网页。在其 2.4.0 到 2.4.29 版本中存在一个解析漏洞,当文件名以 1.php\x0A 结尾时,该文件会被按照 PHP 文件进行解析,这…

常用开发环境/工具版本选择(持续更新中)

操作系统:Ubuntu Server Version(LTS)Latest Sub VerRelease Time24.04(Noble Numbat)24.04.22025-02-1622.04(Jammy Jellyfish)22.04.52024-09-1120.04(Focal Fossa)20.04.62023-03-1418.04(Bionic Beaver)18.04.62021-09-1516.04.7(Xenial…

STM32 认识STM32

目录 什么是嵌入式? 认识STM32单片机 开发环境安装 安装开发环境 开发板资源介绍 单片机开发模式 创建工程的方式 烧录STM32程序 什么是嵌入式? 1.智能手环项目 主要功能有: 彩色触摸屏 显示时间 健康信息:心率&#…

C#核心笔记——(六)框架基础

我们在编程时所需的许多核心功能并不是由C#语言提供的,而是由.NET Framework中的类型提供的。本节我们将介绍Framework在基础编程任务(例如虚的等值比较、顺序比较以及类型转换)中的作用。我们还会介绍Framework中的基本类型,例如String、DateTime和Enum. 本章中的绝大部分…

AI——K近邻算法

文章目录 一、什么是K近邻算法二、KNN算法流程总结三、Scikit-learn工具1、安装2、导入3、简单使用 三、距离度量1、欧式距离2、曼哈顿距离3、切比雪夫距离4、闵可夫斯基距离5、K值的选择6、KD树 一、什么是K近邻算法 如果一个样本在特征空间中的k个最相似(即特征空…

transient关键字深度解析

Java transient 关键字深度解析 transient(意思:瞬时的,瞬间的) 1. 核心概念 (1) 基本定义 作用:标记字段不参与序列化 适用场景: 敏感数据(如密码、密钥) 临时计算字段 依赖运行时环境的字段(如Thread对象) (2) 语法示例 java public class User implements Se…

信刻电子档案蓝光光盘刻录安全检测长期归档

信刻一直致力于为档案馆、各行业档案部门,提供跨网数据交换、电子档案数据磁光异质备份归档解决方案。所研制的电子档案光盘智能长期归档系统,满足国产环境下”刻、管、存、检、用”全生命周期管理应用需求,能够提供一份离线归档、一份近线存…

Word 中“母版页”的等效机制

Word 和 PowerPoint 不太一样——**Word 实际上没有像 PowerPoint 那样的“母版页(Master Page)”**功能。但它有1个和“母版页”功能类似的东西,可能造成你看到的“校徽自动出现在每一页”的现象: ✅ Word 中“母版页”的等效机制…

Go:反射

为什么使用反射 在编程中,有时需编写函数统一处理多种值类型 ,这些类型可能无法共享同一接口、布局未知,甚至在设计函数时还不存在 。 func Sprint(x interface{}) string {type stringer interface {String() string}switch x : x.(type) …

SS25001-多路复用开关板

1 概述 1.1 简介 多路复用开关板是使用信号继电器实现2线制的多路复用开关板卡;多路复用开关是一种可以将一个输入连接到多个输出或一个输出连接到多个输入的拓扑结构。这种拓扑通常用于扫描,适合将一系列通道自动连接到公共线路的的设备。多路复用开…

vue3 nprogress 使用

nprogress 介绍与作用 1.nprogress 是一个轻量级的进度条组件,主要用于在页面加载或路由切换时显示一个进度条,提升用户体验。它的原理是通过在页面顶部创建一个 div,并使用 fixed 定位来实现进度条的效果 2.在 Vite Vue 3 项目中&#xf…

Jsp技术入门指南【六】jsp脚本原理及隐式对象

Jsp技术入门指南【六】jsp脚本原理及隐式对象 前言一、JSP 脚本元素1.1 声明1.2 表达式1.3 脚本标签 二、JSP 的隐式对象是什么三、隐式对象详解outrequestsessionapplicationconfigexception 前言 在之前的博客中,我们已经介绍了JSP的环境搭建、编译文件查找以及生…