对比excel,用python绘制柱状图时添加table数据表

Excel敏感性分析实战:用Data Table做业务压力测试 敏感性分析是量化模型不确定性、评估关键假设影响的基础方法论,其核心在于识别驱动变量、设定合理变动区间并实现结果可视化。它并非高阶金融建模专属,而是财务、运营、产品等岗位必备的决策支持能力。依托Excel原生Data Table功能,无需编程即可完成单变量、双变量及情景式分析,兼顾审计合规性与跨平台兼容性。通过弹性计算、热力图呈现与业务逻辑对齐的参数设定,该技术能将模糊风险转化为可排序、可归因、可行动的数字结论,广泛应用于成本管控、定价策略、商业计划书验证等真实场景。 阅读详情

最近在做数据可视化的时候,希望在图上同时显示数据表。关于这个需求,用excel可以比较方便,直接快速布局中选择布局5即可。那么,如果我们想用python也来完成这项任务,可以怎么做呢?

期望效果预览:

excel作图效果

1. Excel简单绘制

就很简单了,直接选中数据插入柱状图,然后在图表工具-设计-快速布局中选择相应的布局即可。

案例数据及效果
excel图表设计->快速布局—>布局5

2. Python绘制

那这里我们用到的是matplotlib,bar和table。

将图表元素进行拆解,可以分为柱状图和数据表,刚好matplotlib提供了对应的接口。

2.1 柱状图绘制

先绘制柱状图,案例中是两组数据,所以是组合柱状图。在本次绘制中,有以下几个知识点,可以记一记:

  • 设置标题时的位置(用参数x,y指定)

  • 设置坐标轴标题时用参数rotation旋转方向

  • 设置坐标轴区间范围

  • 显示数据标签(用ax.bar_label方法)

import numpy as np
import matplotlib.pyplot as plt

# 中文及负数显示
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False

# 创建画布
fig, ax = plt.subplots(figsize=(10, 4), dpi=100)

# 案例数据
data = [[150, 200,  -50, -100,  -75],
        [300, 125,  -80,  75, -100],
        ]
# 列与行
columns = ('周一', '周二', '周三', '周四', '周五')
rows = ['才哥', '楠楠']

# 作图参数
index = np.arange(len(columns))-0.1
bar_width = 0.4

# 设置柱状图颜色
colors = ['turquoise', 'coral']

# 柱状图
bar1 = plt.bar(index, data[0], 
               bar_width, color=colors[0], edgecolor='grey')
bar2 = plt.bar(index+bar_width, data[1],
               bar_width, color=colors[1], edgecolor='grey')

# 设置标题
ax.set_title('工作日收益情况', fontsize=16, y=1.1,x=0.44)
# 设置坐标轴标题
ax.set_ylabel("元", fontsize=12, color='black', alpha=0.7, rotation=360)
# 设置Y轴区间
ax.set_ylim(-150, 350)

# 显示数据标签
ax.bar_label(bar1, label_type='edge')
ax.bar_label(bar2, label_type='edge')

# x,y轴刻度不显示
ax.tick_params(axis=u'both', which=u'both', length=0)
# x轴刻度及刻度值不显示
plt.xticks([])

输出如下:

组合柱状图

2.2. 图表table绘制

先看看图表table的绘制,我们拿案例数据来单独绘制看看:

# 创建画布
fig, ax = plt.subplots(figsize=(10, 4), dpi=100)
# table图表
the_table = plt.table(cellText=data, 
                      rowLabels=rows,rowColours=colors,
                      colLabels=columns, cellLoc='center', loc="bottom",
                      bbox=[0, -0.4, 1, 0.24]
                      )

输出如下:

table

关于 plt.table的参数介绍如下:

cellText:表格单元格文本,字符串中的换行符暂不支持,可能导致文本超出单元格边界
cellColours:表格单元格背景色
cellLoc:表格单元格文本的对齐方式,取值范围为{'left', 'center', 'right'},默认值为'right'
colWidths:表格单元格宽度
rowLabels:表格行表头文本
rowColours:表格行表头背景色
rowLoc:表格行表头文本的对齐方式,取值范围为{'full', 'left', 'right'},默认值为'left'
colLabels:表格列表头文本
colColours:表格列表头背景色
colLoc:表格列表头文本的对齐方式,取值范围为{'full', 'left', 'right'},默认值为'left'
loc:单元格相对于子图的位置

bbox:绘制表格的边界框

最后,我们需要做的就是将上述两个图进行组合,组合过程中可能需要做一些格式微调。

2.3. 组合

在本次案例中,对组合图需求有以下几点:

  • 柱状图边框不显示

  • 图表table中列名高度需要高一些,单元格的高度要低一些

  • 图例位置需要和对应行一致

为了实现上诉需求,我们可以通过以下方式来处理:

# 设置单元格高度
cellDict = the_table.get_celld()
for i in range(0, len(columns)):
    cellDict[(0, i)].set_height(0.6)
    for j in range(1, len(rows)+1):
        cellDict[(j, i)].set_height(0.4)

# 设置图表table中行名单元格的高度
cellDict[(1, -1)].set_height(0.4)
cellDict[(2, -1)].set_height(0.4)

# 设置图表table单元格文本字体
the_table.auto_set_font_size(False)
the_table.set_fontsize(10)

# 设置图表table单元格边框
for key, cell in the_table.get_celld().items():
    cell.set_linewidth(0.6)

# 边框隐藏
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)

name = ['', '']
# 设置图例的位置
ax.legend(name, handlelength=0.7, labelspacing=0.6,
          bbox_to_anchor=(-0.1, -0.23),
          loc='upper left', frameon=False)

最终,我们可以得到比较满意的效果:

最终效果

以上就是本次全部内容,大家可以修改参数多试试以熟悉掌握。

目前有40个同学打卡读书,下面分享我们投资星球读书会「小狗钱钱」的一位球友的打卡贴:

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

点阅读原文,领AI全套资料!
Python数据分析实战:用Pandas+Matplotlib自动化处理Excel数据 在数据处理与分析领域,Excel是广泛使用的工具,但在处理复杂、大规模或需要自动化复用的分析任务时,其局限性逐渐显现。此时,以NumPy、Pandas和Matplotlib为核心的Python数据分析技术栈展现出强大优势。Pandas提供了类似Excel表格的DataFrame数据结构,但其底层基于NumPy的高性能数组计算,支持向量化操作,能高效完成数据读取、清洗、转换与聚合。Matplotlib则提供了丰富的可视化能力,可将分析结果转化为直观的图表。这套组合的价值在于,它将手动、重复的Excel操作转化 阅读详情

相关推荐

Excel、SQL、Power BI、Python:7天掌握数据分析四大核心工具

数据分析是通过系统方法从数据中提取有价值信息的过程,其核心原理包括数据采集、清洗、建模和可视化。在现代商业环境中,数据分析技术能够帮助企业优化决策、提升运营效率和发现新的商业机会。从Excel的基础数据处理到SQL的数据库查询,再到Power BI的可视化报表和Python的自动化分析,这些工具覆盖了数据分析的全流程。特别是在商业智能和机器学习应用场景中,这些工具的组合使用能够构建完整的数据分析解决方案。本文以Excel数据清洗和Python机器学习实战为例,详细介绍了如何通过7天系统学习掌握这四款核心工具

weixin_33970449的博客 322

用matplotlib绘制表格

【代码】用matplotlib绘制表格。

lonly_FK的博客 1200

plt.table绘制表格

plt.table()函数是Matplotlib库中的一个函数,用于在图表中插入一个表格。它提供了创建和定制表格的功能。下面是plt.table()函数的一些常用参数:cellText: 一个二维列表或数组,表示表格中的文本内容。每个元素对应一个单元格的内容。cellLoc: 单元格中文本的布局方式,可以是 'center'、'left' 或 'right'。默认值为 'center'。loc: 表格的位置,可以是 'upper right'、'lower left' 等。

qinshi501的博客 2555

利用table()函数添加表格

其中常用参数含义如下:使用pyplot模块的table()函数添加表格cellText : 表示表格单元格中的数据,是一个二维列表cellLoc :表示单元格文本的对齐方式,支持'left'、'right'、'center' 三种取值,默认值为'right'rowLabels : 表示行标题的文本colLabels : 表示列标题的文本loc:表示表格与绘图区域的对齐方式。

djh2224070202的博客 1422

用python绘制柱状图时添加table数据表

最近在做数据可视化的时候,希望在图上同时显示数据表。关于这个需求,用excel可以比较方便,直接快速布局中选择布局5即可。那么,如果我们想用python也来完成这项任务,可以怎么做呢? 期望效果预览: excel作图效果 1. Excel简单绘制 就很简单了,直接选中数据插入柱状图,然后在图表工具-设计-快速布局中选择相应的布局即可。 案例数据及效果 excel图表设计->快速布局—>布局5 2. Python绘制 那这里我们用到的是matplotlib,ba

JanLEE 5788

apm软件仿真+QGC地面站 环境搭建

本教程使用场景:apm软件仿真运行于虚拟机 ubuntu环境。qgc地面站位于windows 系统。两个环境在同一台电脑上。 一.apm仿真环境搭建 1.安装vm虚拟机及ubuntu 18。 2.ubuntu下 下载Ardupilot 飞控源码 并配置环境。 下载源码: git clone https://github.com/ArduPilot/ardupilot cd ardupilot git submodule update --init --recursive 配置所需运行的环境:

qthello 6110

table函数--Matplotlib

官方文档: table函数

chongbaikaishi的博客 5542

【Flink cdc】Data row is smaller than a column index, internal schema representation is probably xxx

翻译一下:当scan.startup.mode=EARLIEST_OFFSET时,如果在最早的offset之后表结构有过变化就无法支持。原因应该是在binlog 的earliest_offset之后,表结构被修改过。我的解决方案:source配置中使用。mysql source配置使用。,以时间戳为消费依据。

integrity 2085

对比excel,用matplotlib绘制柱状图添加table图表

大家好,我是才哥。 最近在做数据可视化的时候,希望在图上同时显示数据表。关于这个需求,用excel可以比较方便,直接快速布局中选择布局5即可。那么,如果我们想用python也来完成这项任务,可以怎么做呢? 期望效果预览: 1. Excel简单绘制 就很简单了,直接选中数据插入柱状图,然后在图表工具-设计-快速布局中选择相应的布局即可。 2. Python绘制 那这里我们用到的是matplotlib,bar和table。 将图表元素进行拆解,可以分为柱状图和数据表,刚好matplotlib提供了对应的接

可以叫我才哥 2150

【Chipyard】Gemmini快速上手

Gemmini 加速器在 ResNet50 推理任务中表现出计算密集型优势,核心操作周期分布符合深度学习模型特征,推理预测流程完整且测试通过,为后续硬件优化和模型部署提供了有效参考。

2359

使用Termux在Android设备上编译运行SpecCPU2006

SPEC2006搭配Termux,竟然还能这么玩?!

菜菜的菜园子 2960

用Python完成Excel的常用操作

原文首发于简书于[2018.07.23] 在以前,商业分析对应的英文单词是Business Analysis,大家用的分析工具是Excel,后来数据量大了,Excel应付不过来了(Excel最大支持行数为1048576行),人们开始转向python和R这样的分析工具了,这时候商业分析对应的单词是Business Analytics。 其实python和Excel的使用准则一样,都是[We ...

廖致君的博客 5万+

创新实训项目博客:基于LoRA的医疗大模型高效微调实战

预训练大语言模型(LLMs)虽然具备了广泛的知识和一定的通用能力,但在特定领域(如医疗)或特定任务(如遵循特定指令格式进行思考链推理)上,其表现往往不尽如人意。微调(Fine-tuning)能够使模型学习到特定领域的数据分布和任务模式,从而在目标任务上获得更好的性能,使其更贴合实际应用需求。使用Unsloth框架加载并以4-bit量化模型。基于数据集,构建了包含明确思考链引导的训练Prompt。配置了LoRA参数,并使用SFTTrainer在单张T4 GPU上对模型进行了高效微调。

m0_73556916的博客 1290

python画柱形图显_利用Python、R、Excel做频数统计并绘制条形图和饼图

Excel、Python、R三种方法进行频数分析并画出条形图和饼形图Excel 利用函数COUNTIF,传入两个参数,第一个为源数据,第二个为分类数据各列一遍(即频数统计的各项)Python频数统计利用count()函数,具体见下方条形图的代码。条形图方法如下:matplotlib.pyplot.bar(left, height, width=0.8, bottom=None, hold=None...

weixin_39653361的博客 1628

睿尔曼复合机器人之底盘操作流程

控制键”按下后,可在键盘上通过‘i’(向前),‘k’(向后),‘j’(向左旋转),‘l’(向右旋转)四个按键对底盘进行运动控制。选中禁⾏线功能后,使⽤⿏标在界⾯内点击选择起点,继续在其他地⽅点击,两点之间会连成⼀条线,可以进⾏多次连续点击,形成连续线条。4)扫图完成后,软件会重新启动,返回到监控页面,点击“激光”可看到当前机器激光扫描的实时数据,在页面上表现为红色边界线,点击菜单栏“控制”键使底盘在一定范围内运动,扫描到尽可能多的边界线,可发现与实际地图的黑色边界线不同,需要进行手动校正。

realman_Rop的博客 1474

应用软件——Altium Designer 19 Gerber/坐标文件

如何输出Gerber文件 步骤如下: 打开需要输出的PCB文件 2. 设置原点坐标 3. 打开Gerber Files 选项,File–>Fabrication Opuputs–>Gerber Files。 4. General参数设置。 用于指定输出Gerber文件中使用的单位(Units)和格式(Format)。单位可以是公制(Millimeters)和英制(Inches);格式栏中2:3,2:4,2:5代表文件中使用的不同数据精度,其中2:3表示数据含2位整数3位小数;相应的,另外两个分

染血黑兔的博客 7203

破解网易云 eapi 加密协议:MyGo 云音乐 Go 登录流程完全指南

**MyGo 云音乐(mygo-cloudmusic)** 是一个用 Go 编写的第三方网易云音乐原生桌面客户端,它不依赖 WebView,而是直接破解并复现了网易云的 **eapi 加密协议**,实现了扫码登录、VIP 歌曲播放、歌单管理等完整功能。本文带你完整拆解它的 Go 登录流程:从 eapi 请求的 AES 加密细节,到二维码轮询的每个状态码,再到会话 Cookie 的安全存储。无论你是

gitblog_00076的博客 472

全局注意机制 GAM | Global Attention Mechanism: Retain Information to Enhance Channel-Spatial Interactions

全局注意机制 GAM

Coding... 2576

Python实现数据分析

之前我们学习了使用Python导入数据,数据导入后我们也可以使用Python进行数据分析。Python进行数据分析主要使用pandas库和matplotlib库,我们可以制作数据透视表和折线图等图表。

qq_46094651的博客 571

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python处理Excel多工作表:openpyxl与pandas的实战对比

在电商数据分析场景中,某团队需要处理包含销售、库存、用户行为三个工作表的Excel文件。使用openpyxl逐行读取时,处理10万行数据耗时47分钟;改用pandas后,同样的数据仅需23秒完成读取和清洗。这一案例揭示了不同工具在处理Excel多工作表时的性能差异。本文通过真实场景对比,解析openpyxl与pandas的核心差异,并提供混合使用策略。

这家伙很懒,什么都没有留下 766

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python和Excel的完美结合:常用操作汇总(案例详析)

在以前,商业分析对应的英文单词是Business Analysis,大家用的分析工具是Excel,后来数据量大了,Excel应付不过来了(Excel最大支持行数为1048576行),人们开始转向python和R这样的分析工具了,这时候商业分析对应的单词是Business Analytics。 其实python和Excel的使用准则一样,都是[We don't repeat ourselves],都是尽可能用更方便的操作替代机械操作和纯体力劳动。 用python做数据分析,离不开著名的pandas包,

wulishinian的博客 5万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

用 Python 自动生成带图表的 Excel 汇总报告

本文介绍了如何用Python的openpyxl库自动生成带图表的Excel可视化报告。通过读取汇总数据,在Excel中自动插入柱状图(按客户)和折线图(按月),并保存为新文件。核心代码使用Reference对象指定图表数据范围,支持自定义图表类型、标题和位置。这种方法可替代手动操作,实现数据自动可视化,适用于日报、月报等场景。文章还提供了进阶功能建议,如添加数据标签、设置颜色主题等,完善了从数据清洗到可视化的全流程自动化方案。

qq_58414613的博客 573

python操作Excel模块openpyxl

https://www.cnblogs.com/zeke-python-road/p/8986318.html 1、安装 pip install openpyxl 想要在文件中插入图片文件,需要安装pillow,安装文件:PIL-fork-1.1.7.win-amd64-py2.7.exe ·font(字体类):字号、字体颜色、下划线等 ·fill(填充类):颜色等 ·border(边框类):设置单元格边框 ·alignment(位置类):对齐方式 ·number_form...

Java后端技术栈 192

python处理Excel word PDF Pandas xlwings numpy openpyxl matplotlib,docx,jieba 词频统计 flash

【代码】python处理Excel。

Kaizen的博客 2450

Python实现数据库到Excel自动化导出的高效方案

数据库与Excel的数据交互是数据处理中的常见需求,通过Python可以实现高效自动化。数据库连接技术如MySQL、PostgreSQL等与Python库(如pymysql、psycopg2)结合,配合Excel操作库(如pandas、openpyxl),能够实现数据的快速导出与格式化处理。这种技术方案特别适合需要定期生成报表、处理大数据量或复杂查询的场景,能显著提升工作效率并减少人为错误。在实际应用中,结合数据清洗、格式优化和自动化调度,可以构建健壮的数据导出流程。本文以电商订单数据为例,展示如何通过Py

weixin_34192816的博客 439
上一篇: 16岁黑客入侵腾讯系统入狱,后做手游创业赚数亿,如今31岁的他在哪里?
下一篇: PyTorch 1.8 和 Tensorflow 2.5,我该用哪个?
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值