termgraphでターミナル上にグラフを表示する

termgraphを使ってターミナル上にグラフを描画してみました。
2018.07.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

ターミナル上にグラフを描画するコマンドラインツールの termgraph を試してみました。 え、ターミナルにグラフってどういうこと?と思ってたんですが、README見て納得でした。

今回はこのツールを使って、Developers.IOの年間投稿本数をグラフにしてみます。

検証環境

  • macOS: 10.12.6
  • Python: 3.7.0
  • Pipenv: 2018.05.18
  • termgraph: (バージョンなし)

試す

データを作成

データを作成します。投稿本数は下記ブログエントリから取得しました。

developers-io.txt

2011    509
2012    529
2013    1149
2014    1471
2015    1941
2016    2732
2017    2889

グラフを表示する

早速グラフを表示してみましょう。まず、Pythonの実行環境を用意して依存ライブラリをインストールします。

$ pipenv install --python 3.7.0
$ pipenv install colorama
$ pipenv shell

termgraphは2018/7/28時点だとリポジトリからスクリプトをダウンロードして使う前提のようです。今回はリポジトリごとダウンロードしてみます。

$ git clone https://github.com/mkaz/termgraph

用意したデータを表示します。

$ python termgraph/termgraph.py developers-io.dat

2011: ▏ 509.00
2012: ▏ 529.00
2013: ▇▇▇▇▇▇▇▇▇▇▇▇▇ 1149.00
2014: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1471.00
2015: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1941.00
2016: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 2732.00
2017: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 2889.00

ターミナル上にテキストで描画しているので、コードブロックに貼り付けても違和感ないですね!オプションで色を指定することもできるようです。

今回はデフォルトのフォーマットで表示しましたが、スタックグラフにも対応しているようです。以下はtermgraphのリポジトリにあるサンプルデータをスタックグラフで表示したものです。リポジトリのスナップショットと色合いが違うので実行環境に依存するものと思います。

おわりに

いかがでしたでしょうか。個人的にはターミナルにグラフを描画するという発想がなかったので非常に新鮮でした。簡単なデータを可視化してチャットツールで共有する際に使ってみたいと思います。