Python

CentOSでPlotlyとorcaをインストールしてファイル書き出しする

こんにちは,しまさん(@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から移行していければいいなと思います.

参考文献

ABOUT ME
しまさん
高専→大学編入→大学院→? / 計算社会科学,ウェブマイニングなど / グレープフルーツと本が好き / SNS(Twitter,YouTube,Twitch)やVTuberのデータ分析屋 詳しいプロフィールはこちら≫ 投げ銭はコチラ