はじめに
plotly を使うと、様々なグラフを描くことができる。今回は plotly にて描画したグラフや表を画像として保存する方法を説明する。実行環境は以下の通り。
- Windows10 Pro
- Anaconda 4.9.2
コマンドライン上で行うものはすべて Anaconda Prompt で実行している。Plotlyでレポート・論文に使えるグラフを描こうを参考にした。
(2021/3/15追記)plotly の現在のバージョンでは orca ではなく Kaleido が推奨されているとコメントでいただいたので、そちらを記事後半に追記。
必要なライブラリのインストール
必要に応じて Anaconda にて仮想環境を構築し、以下ライブラリをインストールする。( python, plotly に関しては省略。)
$ conda install pustil
$ conda install -c plotly plotly-orca
psutil の説明は以下の通り。(Google翻訳)
psutil(プロセスおよびシステムユーティリティ)は、 Pythonで実行中のプロセスとシステム使用率(CPU、メモリ、ディスク、ネットワーク、センサー)に関する情報を取得するためのクロスプラットフォームライブラリです。これは、主のために有用であるシステム監視、プロファイリングおよびプロセスのリソース制限や実行中のプロセスの管理を。これは、ps、top、iotop、lsof、netstat、ifconfig、freeなどの従来のUNIXコマンドラインツールによって提供される多くの機能を実装します。psutilは現在、次のプラットフォームをサポートしています。
- Linux
- Windows
- macOS
- FreeBSD, OpenBSD, NetBSD
- Sun Solaris
- AIX
orca の説明は以下の通り。(Google翻訳)
Orcaは、コマンドラインからplotly.jsグラフ、ダッシュアプリ、ダッシュボードなどのPlotlyの画像とレポートを生成するElectronアプリです。さらに、OrcaはPlotlyのImageServerのバックボーンです。Orcaは、オープンソースのReport CreatorAppの頭字語でもあります。
実際に扱ったライブラリのバージョンは以下。
python == 3.9.2
plotly == 4.14.3
plotly-orca == 1.3.1
psutil == 5.8.0
画像を保存
Figure Factory Tables in Python のデータを元に表を作成し、png 形式で保存する。
import plotly.figure_factory as ff
data_matrix = [['Country', 'Year', 'Population'],
['United States', 2000, 282200000],
['Canada', 2000, 27790000],
['United States', 2005, 295500000],
['Canada', 2005, 32310000],
['United States', 2010, 309000000],
['Canada', 2010, 34000000]]
fig = ff.create_table(data_matrix)
fig.show()
ff.create_table を使うと、簡単にきれいな表を作成することができる。編集などは別記事で後日書く。上記で作成した fig を保存する際は以下コードを実行する。
fig.write_image('table.png')
上記コードにて、カレントディレクトリ直下に図が保存される。保存するディレクトリを変えたい場合は fig.write_image('figure/table.png')
のように、パスまで指定すればよい。
(2021/3/15追記)Kaleido のインストール
orca ではなく、Kaleido での画像保存を試してみた。Static Image Export in Python によると、plotly 4.9 以降は kaleido が推奨されている。今回は plotly 4.14.3 を用いているので、orca ではなく Kaleido を使用してみる。以下コマンドでインストール。
$ conda install -c conda-forge python-kaleido
使い方は基本的には orca と同じで fig.write_image('table.png')
で実行できる。デフォルトフォーマットや画像サイズなどの設定は以下のように設定できる。
import plotly.io as pio
pio.kaleido.scope.default_format = "jpeg" # デフォルトは "png"
pio.kaleido.scope.default_width = 1400 # デフォルトは 700
pio.kaleido.scope.default_height = 1000 # デフォルトは 500
詳細は Static Image Export in Python、GitHub plotly/Kaleido を参照すること。