こんにちは,しまさん(@shimasan0x00)です.
最近はCentOS 7上でJupyter Labを動かしてプログラム動かしてます.
そんなこんなでLab上で分析しているとデータを可視化したくなります.
いつもmatplotlibを使っていたのですがPlotlyがよさそうだと聞きました.
ということで色々触ってみたのですが可視化したものを保存しようとしたら詰みました.
pio.write_image(fig,"xx.eps")
で保存しようとしても全然うまくいきませんでした.
色々調べて実行してもうまくいかず時間を溶かす日々.
調べていくとorcaをうまくインストールできていなかったようです.
なので今回はorcaをインストールする方法を紹介したいと思います.
Githubで紹介されているMethod 4: Standalone binaries
+αで解決できました.
環境
CentOS 7
Pyenv : Python 3.6.8
スポンサーリンク
Plotlyその他のインストール
まずはpythonパッケージをいくつかインストールします.
pip install plotly psutil
pip install orca(いらないかも)
sudo yum -y install xorg-x11-server-Xvfb
スポンサーリンク
Orcaのインストール
ではここから問題のOrcaをインストールしていきます.
公式サイトではcondaやnpm+pipでの方法が紹介されています.
ですがnpmでインストールしても動かなかったです.
なので素直にGithubを見ることにしました.
condaやDockerは使いたくないし,npmはうまくいかなかったのでどうしたものかと思ったら第4の方法がありました.
スタンドアローンバイナリでインストールする方法です.
まずはリリースページにいきます.
AppImageファイルをダウンロードしてください.

次に権限付与します.
chmod +x orca-1.2.1-x86_64.AppImage
その後,AppImageを抽出します.
./orca-1.2.1-x86_64.AppImage --appimage-extract
シンボリックリンク貼ります.
sudo ln -sf /home/User/保存したPath/squashfs-root/app/orca /usr/local/bin/orca
リンク先をシェルに書き換えてしまいます.
sudo rm /usr/local/bin/orca
sudo vim /usr/local/bin/orca
内容(/usr/local/bin/orca)
#!/bin/bash
xvfb-run -a /home/User/保存したPath/squashfs-root/app/orca "$@"
権限周りを変更します.
sudo chown user:user /usr/local/bin/orca
chmod 777 /usr/local/bin/orca
すると…
$ orca
Plotly's image-exporting utilities
Usage: orca [--version] [--help] <command> [<args>]
Available commands:
- graph [or plotly-graph, plotly_graph]
Generates an image of plotly graph from inputted plotly.js JSON attributes.
For more info, run `orca graph --help`.
- serve [or server]
Boots up a server with one route per available export component
For more info, run `orca serve --help`.
コマンド通った!!!!ありがてぇ.
保存してみる(Jupyterlab)
PlotlyをLabで使うなら以下の拡張機能を入れとくと便利です.
@jupyterlab/plotly-extension
では円グラフを作成するサンプルを以下に貼っておきます.
一応offlineで使用できるように設定しています.
import plotly
import plotly.offline as offline
import plotly.graph_objs as go
import plotly.io as pio
offline.init_notebook_mode()#connected=False
plotly.io.orca.config.executable = '/usr/local/bin/orca'
plotly.io.orca.config.save()
layout = go.Layout(
autosize=False,
width=600,
height=600,
)
data = [
go.Pie(labels=label, values=number,
hoverinfo='label+percent',
textinfo='percent',
textfont=dict(size=10),
opacity = 0.9,
sort = True,
direction = 'clockwise',
marker=dict(line=dict(color='#000000', width=1)))
]
fig = go.Figure(data=data, layout=layout)
# offline.iplot(fig, filename='sample_pie')
pio.write_image(fig,"img/sample.eps")
ようやく保存できた…
スポンサーリンク
さいごに
今回はPlotlyで画像を保存するためにOrcaをインストールしていきました.
plotly使いやすいので徐々にmatplotlibから移行していければいいなと思います.