pyTable ドキュメント
pyTable
- 更新日:2020.11.12 ... pytab ver. 1.0.3 - [English Documentation]
pyTableは簡単に表を作成するためのツール.
ここではその使い方や,できることを細かく記載しています.
公式ドキュメントですが,そんな大したものではありません.
インストール
1 | $ pip install pytab |
source (Github) : HiroshiARAKI/pytable: pytable is the library to plot table easily.
PyPI : pytab · PyPI
基本的な使い方
pyTableは,裏でmatplotlibが動いており,それを使いやすくラップしたものに過ぎません.
以下のように,表にしたいデータを辞書型変数として渡すことで表を作成可能です.
ちなみに辞書型変数で渡すのは列データ(column).
- ver. 1.0.3から,pandasの DataFrame 型も対応しました
1 2 3 4 5 6 7 8 9 10 11 12 13 | import pytab as pt if __name__ == '__main__': data = { 'a': [1.0, 2.1, 3.5, '-', 2.0, 1.0, 2.1, 3.5, 4.0, 2.0, ], 'b': [5.7, 6.1, 7.2, 8.3, 1.2, 5.7, 6.1, 7.2, 8.3, '-', ], } # The simplest table pt.table(data=data) pt.show() |
rowsを指定する
表の左側に行データのヘッダーを追加できます.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import pytab as pt if __name__ == '__main__': data = { 'Tokyo': [27, 23, 27, 24], 'Osaka': [26, 23, 27, 28], } rows = ['5/15', '5/16', '5/17', '5/18'] pt.table( data=data, rows=rows, ) pt.show() |
背景色を変える
表のヘッダーの背景色を変えたい時があります.
そんなときは, th_c や td_c に色の名前やカラーコードを指定してください.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import pytab as pt if __name__ == '__main__': data = { 'Tokyo': [27, 23, 27, 24], 'Osaka': [26, 23, 27, 28], } rows = ['5/15', '5/16', '5/17', '5/18'] pt.table( data=data, rows=rows, th_c='#aaddff', td_c='lightgray', ) pt.show() |
色の名前は,matplotlibと同様です.
(参照:List of named colors – Matplotlib 3.1.0 documentation)
表のセルデザインを変える
表のセルを簡単にシンプルでオシャレなものにすることもできます.
引数の table_type で指定できます.
striped
1 2 3 4 5 | pt.table( data=data, th_c='#aaddff', table_type='striped', ) |
dark
1 2 3 4 | pt.table( data=data, table_type='dark', ) |
light
1 2 3 4 | pt.table( data=data, table_type='light', ) |
表のヘッダーデザインの変更
表のヘッダーだけ色を変えるとお洒落です.
pyTableでは引数 th_type を指定するだけで簡単にデザインを変更できます.
dark
1 2 3 4 | pt.table( data=data, th_type='dark' ) |
gray
light
sky
その他
他にも, 'blue' , 'red' , 'green' , 'orange' が指定できます.
また,表ヘッダーの背景色と文字色を自由にそれぞれ指定することも可能です.
それぞれ, th_face , th_text で指定可能で,matplotlibで使用可能なカラーコードを指定できます.
1 2 3 4 5 | pt.table( data=data, th_face='limegreen', th_text='olive', ) |
各種引数の解説
pyTableの table() 関数には他にも指定可能なオプションがあります.
ここではそれを紹介します.
data_loc, th_loc, td_loc
セルデータ,表ヘッダー(cols),表rowsの位置を指定します.
デフォルトではそれぞれ右寄せ,中央寄せ,中央寄せになっており, 'left' と 'center' , 'right' で指定してください.
figsize
図の大きさを Tuple[float, float] で指定します.
デフォルトでは (3, 3) という小さな表のためのサイズになっているので,もし大きい表を作る場合はこれを調整して見栄えを良くしてください.
None としてしまって, show() で弄るという手もありだと思います.
edge
表の枠線に関する引数です.
デフォルトでは 'closed' になっていますが,他にも ['open', 'closed', 'horizontal', 'vertical'] が指定可能です.
それぞれ,枠線なし,枠線あり,水平方向のみ枠線あり,垂直方向のみ枠線あり,です.
'closed' 以外では,現在背景色は指定できません.
表を保存する
pyTableでもpngやjpg,pdfなどで保存が可能です.
1 | pt.save('sample.png') |
matplotlibとはメソッド名が異なるので注意してください.
また, pt.show() との併用はできません.
もっと細かい設定をするには?
pt.Table() は,戻り値として matplotlib.table.Table のインスタンスが返ります.
したがって以下のように,後から細かく設定し直すことも可能です.
1 2 3 4 5 6 7 8 9 | # pt.Tableはmatplotlib.table.Table型のインスタンスが返る tb = pt.table( data=data, th_type='dark', table_type='striped', ) # Tableクラスのメソッドを呼ぶ tb.set_fontsize(20) |
有効数字に関するTips
実験データなどをもとに表を作成する際,有効数字を気にしなければならないときがあります.
そんなときは, str に変換してからデータを渡すようにしましょう.
改変前
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import pytab as pt if __name__ == '__main__': data = { 'Expt. 1': [0.023, 0.410, 0.001, 0.000, 0.325, 0.010, ], 'Expt. 2': [0.060, 0.112, 0.109, 0.030, 0.051, 0.000, ], } pt.table( data=data, ) pt.show() |
改変後
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import pytab as pt if __name__ == '__main__': data = { 'Expt. 1': [0.023, 0.410, 0.001, 0.000, 0.325, 0.010, ], 'Expt. 2': [0.060, 0.112, 0.109, 0.030, 0.051, 0.000, ], } # 有効数字で揃えて変換 for k in data: data[k] = ['{:.4f}'.format(d) for d in data[k]] pt.table( data=data, ) pt.show() |