本文示例代码已上传至我的
Github
仓库https://github.com/CNFeffery/DataScienceStudyNotes
大家好我是费老师,matplotlib
作为数据可视化的强力工具,可以帮助我们自由创作各式各样的数据可视化作品,其中matplotlib.pyplot.table
模块就专门用于绘制表格,但是由于参数复杂,且默认样式单一简陋,想基于它绘制出美观的表格需要花费不少功夫。
而我最近发现的一个基于matplotlib
的第三方库plottable
,用它来生成数据表格图既简单又美观,今天的文章中费老师我就来带大家学习它的常用方法😎~
使用pip install plottable
完成安装后,我们先从一个简单的例子了解其基础的使用方式:
plottable
的基础使用很简单,在已有数据框的基础上,直接调用plottable
中的Table
模块即可:
渲染出的表格图如下:
了解到plottable
的基础用法后,接下来我们来学习如何添加一些常用参数来对表格进行美化:
通过在Table()
中设置参数odd_row_color
和even_row_color
,我们可以传入matplotlib
中合法的色彩值进行表格奇数偶数行底色的设置:
通过Table()
中的参数col_label_cell_kw
、cell_kw
,我们可以分别对表头区域单元格、数据区域单元格进行样式设置,接受matplotlib.patches.Rectangle
全部可用参数,例如:
通过参数textprops
我们可以对全部单元格的文字样式进行控制:
通过bool型参数col_label_divider
、footer_divider
、row_dividers
可以分别设置是否为表头、表格尾部、数据行绘制分割线:
而通过参数col_label_divider_kw
、footer_divider_kw
、row_divider_kw
则可以分别控制各个部分分割线的样式,支持plt.plot
中全部参数:
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/
。