基于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

目录
相关文章
|
9月前
|
Python
【Matplotlib-1】-使用Matplotlib绘制图表组成元素
【Matplotlib-1】-使用Matplotlib绘制图表组成元素
|
存储 数据可视化 算法
Matplotlib更多实用图形的绘制
我们已经学习了一系列统计图来描绘两个变量间的基本关系,但是,仅仅使用这些图形并不足以应对所有场景。例如,需要显示降雨在各个地区的分布情况。因此,我们需要更多的实用图形来表达现实世界的复杂关系。
1249 0
Matplotlib更多实用图形的绘制
|
Web App开发 算法 API
使用Matplotlib绘制3D图形
本文是Matplotlib的第二篇文章,会讲解如何通过Matplotlib绘制3D图形。关于Matplotlib的第一篇文章,请看这里:[Python绘图库Matplotlib入门教程](https://paul.pub/matplotlib-basics/)。 # 测试环境 由于这是一个Python语言的软件包,因此需要你的机器上首先安装好Python语言的环境。关于这一点,请自行在
3807 0
成功解决利用matplotlib.pyplot进行绘图的时候整个画布中的绘制曲线只显示一部分
成功解决利用matplotlib.pyplot进行绘图的时候整个画布中的绘制曲线只显示一部分
|
编解码 前端开发 JavaScript
Matplotlib使用和绘制二维图表
Matplotlib使用和绘制二维图表
149 0
|
API Python
Matplotlib绘制3D统计图
在2D统计图统计图中再添加一个维度可以展示更多信息。而且,在进行常规汇报或演讲时,3D图形也可以吸引更多的注意力。在本文中,我们将探讨利用Matplotlib绘制三维统计图。
1933 1
Matplotlib绘制3D统计图
|
6月前
|
数据可视化 Python
matplotlib可视化必知必会富文本绘制方法
matplotlib可视化必知必会富文本绘制方法
33 0
|
自然语言处理
绘图系列|R-wordcloud2包绘制词云
绘图系列|R-wordcloud2包绘制词云
130 0
|
Python
python-matplotlib绘图 -应用subplots_adjust()方法解决图表与画布的间距问题
python-matplotlib绘图 -应用subplots_adjust()方法解决图表与画布的间距问题
1109 0
python-matplotlib绘图 -应用subplots_adjust()方法解决图表与画布的间距问题
|
数据可视化 前端开发 UED
matplotlib图形整合之多个子图一起绘制
matplotlib图形整合之多个子图一起绘制
732 0
matplotlib图形整合之多个子图一起绘制

热门文章

最新文章