▶ Python初学者向けにデータ分析に関する記事を書いています
はじめに
今回は私がPlotly Expressという、簡単なコードでインタラクティブな可視化ができるライブラリを教えてもらって試したときに、「Jupyter Lab」ではエラーは出ないけど、真っ白な画面でプロットが表示されない、となってしまったため、その解決策をまとめたものとなります。
この現象はWeb上でも報告されており、解決策が記載された投稿もいくつもありました。ただ、私の環境ではそれらの解決策を実施しても、改善されませんでした。いまの私の環境ではいろんなライブラリをインストールしていて、そのバージョンの組み合わせが原因でうまく動かないようでした。
そこで、現環境の各ライブラリのバージョンの上げ/下げをすると、今度は他のものが動かなくなってしまう可能性もあるので、「仮想環境」を作ってそこでPlotly+Jupyter Labでプロットが表示できるようにすることにしました。今回はその環境の構築方法を一から解説していきます。
OSとPythonのバージョン
- Windows10
- Python 3.8.8
仮想環境の構築
Pythonには「venv」という仮想環境を提供する機能があります。今回はこの「venv」を使ってJupyter Lab上でPlotly Expressで描画したプロットが表示できる環境を構築していきます。
仮想環境の構築と有効化
まずは仮想環境を作る場所(フォルダ)を作りましょう。今回はWindowsマシンに仮想環境を構築していくので、ここでは「PowerShell」を使います。
「mkdir」(make directory)コマンドでフォルダを作ることができます。フォルダの移動は「cd」(change directory)コマンドです。今回は「env」というフォルダを作り、そこにplotlyが動く環境「plotly-env」という仮想環境を作ることにします。まずはenvというフォルダを作り、そこまで移動してしまいましょう。
PS C:\python>mkdir env
PS C:\python>cd env
PS C:\python\env>
「env」というフォルダを作りそこに移動した状態です。では、いよいよ仮想環境を作りましょう。といってもコマンド1行です。次の書式となります。
今回は「plotly-env」という仮想環境を作るので次のようにします。
PS C:\python\env>python -m venv plotly-env
なんと、これだけで仮想環境のできあがりです。いままで難しそうだ、と仮想環境構築を避けてきたのはなんだったのか・・という感じです。
作成したこの仮想環境を使うには、この仮想環境を有効化(アクティベートといいます)する必要があります。このアクティベートをするにあたり、初回だけの作業があります。それがスクリプトに実行権限を与える設定です。初回だけの作業なので細かくは説明しません。次のコマンドを打ち込んでください。
PS C:\python\env> Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
これで仮想環境を有効化する準備が整いました。次のコマンドで仮想環境を有効化しましょう。このコマンド入力は、仮想環境を使うときに毎回おこなう操作となります。
PS C:\python\env> plotly-env/Scripts/Activate.ps1
するとPowerShellの表示が次のように変わります。
(plotly-env) PS C:\python\env>
これでアクティベートできた状態です♪ちなみに、仮想環境を無効化(ディアクティベート)するには「deactivate」とします。
仮想環境にライブラリをインストールする
作成した仮想環境にさっそくライブラリをインストールしていきましょう。仮想環境なのでPCにグローバルインストールして、現在使っている環境を壊してしまう心配はありません。なので、plotly expressに限らず新しいライブラリを試す場合などにも重宝しますね。
さて、今回は次のものをインストールしましょう。
- notebook>=5.3
- ipywidgets>=7.2
- jupyterlab<3.0.0
- pandas
- plotly==4.10.0
※もっと新しいものでも動くかもしれません。確実に動く組み合わせということで私はplotly expressを使うときにはこの環境にしています。
順にpipでインストールしていきましょう。以下のコマンドを1行ずつ、順に打ち込んでけばOKです。
pip install notebook>=5.3
pip install ipywidgets>=7.2
pip install jupyterlab<3.0.0
pip install pandas
pip install plotly==4.10.0
Node.jsのインストール
Jupyter Labの拡張機能を使うにはNode.jsが必要となります。そのため、Node.jsをインストールされていない方はまずはNode.jsのインストールから始めましょう。
Node.jsのインストールはこちらからどうぞ。インストーラをダウンロードして画面の指示通り進めていくだけでインストールできます。
Jupyter Labの拡張機能のインストール
最後にJupyter Labの拡張機能のインストールです。以下の3つをおこないましょう。これも順にこなしていけばよいです。
※最後のは直接関係ありませんが、目次表示があったほうが便利なのでついでに入れておきましょう。
jupyter labextension install jupyterlab-plotly@4.10.0
jupyter labextension install @jupyter-widgets/jupyterlab-manager plotlywidget@4.10.0
jupyter labextension install @jupyterlab/toc
実際に動かしてみる
Jupyter Labの起動
Jupyter Labの起動はそのまま「jupyter lab」と打ち込むだけです。仮想環境を有効にした状態(アクティブ化した状態で)jupyter labと打ち込みましょう。
(plotly-env) PS C:\python\env> jupyter lab
するとお馴染みのJupytのロゴが表示されてJupyter Labが起動します。
plotly expressを試す
早速試してみましょう。
# ライブラリのインポート
import numpy as np
import pandas as pd
import plotly.express as px
# サンプルデータの準備
x = np.linspace(-3,3,100)
y = np.sin(x)
# plotly expressで描画
fig = px.line(
x=x,
y=y
)
fig.show()
うまくいきました。今回はここまでにしましょう。
まとめ
今回はplotly expressというインタラクティブな可視化ができるライブラリを教えてもらったので、早速使ってみたのだけど、Jupyter Lab上でうまく表示されない!!という現象が起きたことから、仮想環境を構築したので、その方法をまとめてみました。
実際にplotly expressで描画してJupyter Labで表示されるところまで確認できました。ずっと、matplotlib, seaborn などしか使っていなかったので、インタラクティブなプロットって新鮮でいいですね。ちょっと使ってみることにします。
コメント