(数据科学学习手札149)用matplotlib轻松绘制漂亮的表格 - 费弗里
source link: https://www.cnblogs.com/feffery/p/17086814.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
本文示例代码已上传至我的
Github
仓库https://github.com/CNFeffery/DataScienceStudyNotes
大家好我是费老师,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_color
和even_row_color
,我们可以传入matplotlib
中合法的色彩值进行表格奇数偶数行底色的设置:
2.2.2 控制表头单元格与数据单元格样式#
通过Table()
中的参数col_label_cell_kw
、cell_kw
,我们可以分别对表头区域单元格、数据区域单元格进行样式设置,接受matplotlib.patches.Rectangle
全部可用参数,例如:
2.2.3 调节单元格文字样式#
通过参数textprops
我们可以对全部单元格的文字样式进行控制:
2.2.4 配置行分割线#
通过bool型参数col_label_divider
、footer_divider
、row_dividers
可以分别设置是否为表头、表格尾部、数据行绘制分割线:
而通过参数col_label_divider_kw
、footer_divider_kw
、row_divider_kw
则可以分别控制各个部分分割线的样式,支持plt.plot
中全部参数:
2.2.5 基于ColDef的列样式细粒度设置#
plottable
中最强大的地方在于,其通过配置由plottable.ColDef
对象列表构成的column_definitions
参数,可细粒度地对每一列进行自由的样式定义,其中每个ColDef()
对象通过参数name
与列名进行对应,常见的用法有:
- 分别设置不同字段的宽度比例系数
以每列的默认宽度为1,可以分别为不同列调整宽度:
- 分别设置不同字段的文本对齐方式
每个ColDef
对象都可设置textprops
参数,基于此可以实现为不同字段定义水平对齐方式:
- 分别为不同字段设置数值色彩映射
通过为ColDef
设置参数cmap
、text_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
更多用法请移步官网https://plottable.readthedocs.io/
。
以上就是本文的全部内容,欢迎在评论区与我进行讨论~
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK