基于matplotlib轻松绘制漂亮的表格

简介: 基于matplotlib轻松绘制漂亮的表格

1 简介

大家好我是费老师,matplotlib作为数据可视化的强力工具,可以帮助我们自由创作各式各样的数据可视化作品,其中matplotlib.pyplot.table模块就专门用于绘制「表格」,但是由于参数复杂,且默认样式单一简陋,想基于它绘制出美观的表格需要花费不少功夫。

而我最近发现的一个基于matplotlib的第三方库plottable,用它来生成数据表格图既简单又美观,今天的文章中费老师我就来带大家学习它的常用方法😎~

2 基于plottable绘制漂亮的表格

使用pip install plottable完成安装后,我们先从一个简单的例子了解其基础的使用方式:

2.1 从简单例子出发

plottable的基础使用很简单,在已有数据框的基础上,直接调用plottable中的Table模块即可:

渲染出的表格图如下:

2.2 plottable的常用方法

了解到plottable的基础用法后,接下来我们来学习如何添加一些常用参数来对表格进行美化:

2.2.1 控制表格奇数偶数行底色

通过在Table()中设置参数odd_row_coloreven_row_color,我们可以传入matplotlib中合法的色彩值进行表格奇数偶数行底色的设置:

2.2.2 控制表头单元格与数据单元格样式

通过Table()中的参数col_label_cell_kwcell_kw,我们可以分别对表头区域单元格、数据区域单元格进行样式设置,接受matplotlib.patches.Rectangle全部可用参数,例如:

2.2.3 调节单元格文字样式

通过参数textprops我们可以对全部单元格的文字样式进行控制:

2.2.4 配置行分割线

通过bool型参数col_label_dividerfooter_dividerrow_dividers可以分别设置是否为表头、表格尾部、数据行绘制分割线:

而通过参数col_label_divider_kwfooter_divider_kwrow_divider_kw则可以分别控制各个部分分割线的样式,支持plt.plot中全部参数:

2.2.5 基于ColDef的列样式细粒度设置

plottable中最强大的地方在于,其通过配置由plottable.ColDef对象列表构成的column_definitions参数,可细粒度地对每一列进行自由的样式定义,其中每个ColDef()对象通过参数name与列名进行对应,常见的用法有:

  • 分别设置不同字段的宽度比例系数

以每列的默认宽度为1,可以分别为不同列调整宽度:

  • 分别设置不同字段的文本对齐方式

每个ColDef对象都可设置textprops参数,基于此可以实现为不同字段定义水平对齐方式:

  • 分别为不同字段设置数值色彩映射

通过为ColDef设置参数cmaptext_cmap,我们可以分别基于对应列的数值,对其单元格底色或字体颜色进行值映射:

  • 为字段创建分组展示

通过为若干个ColDef设置相同的group参数,我们可以为具有相同group参数的字段添加分组标识:

  • 为指定字段绘制列边框

通过为ColDef设置参数border,我们可以决定如何绘制不同字段的列边框:

除了本文所述的部分功能外,plottable还有很多高级进阶的使用方法,譬如单元格图片渲染、自定义单元格绘制内容等,下面的几个例子就是基于plottable创作的:

https://plottable.readthedocs.io/en/latest/example_notebooks/wwc_example.html

https://plottable.readthedocs.io/en/latest/example_notebooks/bohndesliga_table.html

https://plottable.readthedocs.io/en/latest/example_notebooks/plot_example.html

https://plottable.readthedocs.io/en/latest/example_notebooks/heatmap.html

目录
相关文章
|
安全 数据库连接 数据安全/隐私保护
内存泄漏是什么?有什么危害
内存泄漏是什么?有什么危害
999 0
|
SQL 数据采集 关系型数据库
大数据采集和抽取怎么做?这篇文章终于说明白了!
数据是数据中台\数据平台核心中的核心,因此数据汇聚必然是数据中台/平台的入口,本文详细讲述采集模块的方方面面、采集框架的使用选型以及企业真实落地
大数据采集和抽取怎么做?这篇文章终于说明白了!
|
2月前
|
人工智能 API 调度
多AI Agent统一调度|OpenClaw/Hermes统一管控:CC Switch图形化API切换实操详解
CC Switch是开源跨平台桌面端配置管理工具,最新稳定版本为v3.16.3,核心作用是统一管理各类AI编程CLI、Agent工具,彻底解决开发者频繁切换大模型服务商时反复修改JSON配置文件的繁琐操作。在日常开发工作流中,大量使用者会同时使用多款AI工具,包括代码助手、自主智能体框架,每当更换API接口、切换模型密钥、调整代理地址时,都需要手动编辑底层配置文件,极易出现格式错误、参数遗漏、密钥泄露等问题,排查配置故障会消耗大量研发时间。
736 0
|
12月前
|
数据可视化 安全 搜索推荐
标签化任务管理工具选型攻略:如何根据团队需求选择最合适的管理工具
在快节奏工作中,团队常面临任务堆积、优先级不清、责任不明等问题,影响效率与进度。标签化任务管理工具通过“自定义标签+可视化跟踪”,帮助团队结构化任务、明确优先级与责任人,提升协作效率。本文详解其核心价值、选型维度,并推荐5款适配不同团队规模与需求的工具,助你科学落地高效协作方案。
|
12月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
本文整理自阿里云的高级技术专家、Apache Flink PMC 成员李麟老师在 Flink Forward Asia 2025 新加坡[1]站 —— 实时 AI 专场中的分享。将带来关于 Flink 2.1 版本中 SQL 在实时数据处理和 AI 方面进展的话题。
655 0
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
|
10月前
|
存储 人工智能 自然语言处理
96_主动学习提示:用户反馈驱动优化
在人工智能快速发展的今天,大型语言模型(LLM)已经成为各行各业的核心工具。然而,如何让LLM能够持续学习和适应新的需求,如何从用户交互中获取有价值的信息来优化模型性能,已经成为当前研究和应用的热点。主动学习提示(Active Learning Prompts)作为一种新型的提示工程技术,通过用户反馈的闭环系统,实现了模型能力的持续优化和提升。
447 0
|
人工智能 前端开发 语音技术
开源学习神器把2小时网课压成5分钟脑图!BiliNote:一键转录哔哩哔哩视频,生成结构化学习文档
本文介绍基于FastAPI与React构建的开源视频笔记工具BiliNote,其整合多模态AI技术实现视频内容结构化解析,支持跨平台视频源处理与本地化部署方案,提供从语音转写到智能摘要的全流程自动化能力。
3115 36
开源学习神器把2小时网课压成5分钟脑图!BiliNote:一键转录哔哩哔哩视频,生成结构化学习文档
|
NoSQL Ubuntu 网络安全
在 Ubuntu 20.04 上安装和配置 Redis
在 Ubuntu 20.04 上安装和配置 Redis 的步骤如下:首先更新系统包,然后通过 `apt` 安装 Redis。安装后,启用并启动 Redis 服务,检查其运行状态。可选配置包括修改绑定 IP、端口等,并确保防火墙设置允许外部访问。最后,使用 `redis-cli` 测试 Redis 功能,如设置和获取键值对。
712 1
|
人工智能 自然语言处理 API
AppFlow:无代码部署Dify成为公众号客服
本文介绍如何通过计算巢AppFlow无代码部署Dify应用,并将其配置到微信公众号中作为智能客服使用。具体步骤包括:访问计算巢AppFlow模板中心选择Dify实例模版,创建连接流并配置Dify和微信公众号的鉴权凭证,完成部署后发布连接流。最终,您可以通过微信公众号发送消息,接收AI智能客服的回复。
2474 9
AppFlow:无代码部署Dify成为公众号客服
|
机器人 Linux 异构计算
实例1:控制树莓派板载LED灯闪烁
本文是一个关于如何使用Python编程控制树莓派板载LED灯闪烁的实验教程,涵盖了树莓派的基本概念、LED控制文件的读写操作、Python `open()` 和 `sleep()` 函数的使用方法,以及具体的实验步骤和代码实现,目的是让读者通过实践熟悉树莓派操作和Linux文件读写。
775 1
实例1:控制树莓派板载LED灯闪烁