本文示例程式碼已上傳至我的
Github
倉庫https://github.com/CNFeffery/DataScienceStudyNotes
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_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/
。
以上就是本文的全部內容,歡迎在評論區與我進行討論~