Pythonには様々なデータ可視化ライブラリがあります。しかし、その中でも Matplotlib は最も人気があり、広く使われているライブラリです。Matplotlib を使えば、簡単な可視化から複雑な可視化まで作成することができます。
Jupyterノートブックは、データサイエンスやデータ分析のプロジェクト、コード、可視化を共有するための最も一般的な方法の1つです。Matplotlibでデータを可視化する方法は知っていても、JupyterノートブックでMatplotlibを使う方法は知らないかもしれません。
この記事では、IPythonノートブックを使ってMatplotlibのプロットをインラインでプロットする方法を取り上げます。
また、Matplotlib のバックエンドを設定するために使われる Matplotlib の “inline” と “notebook” マジックメソッドの目的もカバーします。
IPythonのセットアップ
Jupyterノートブックはインタラクティブで、他のプログラマやアナリストと再現性のあるフォーマットで作業を共有することができます。しかし、Jupyterノートブックで作業する前に、それをインストールする必要があります。
Jupyterノートブックをインストールする最もシンプルで簡単な方法は、パッケージマネージャを使用することです。Condaを使用している場合、以下のコマンドでJupyterファイルシステムをインストールすることができます。
$ conda install -c conda-forge notebook
pipを使用している場合は、代わりに次のコマンドでJupyterをインストールすることができます。
$ pip install notebook
Jupyter labのインストールが完了したら、コマンドラインを開き、以下の直感的な名前のコマンドプロンプトを使用して、Jupyterノートブックのインスタンスを起動することができます。
Jupyter Notebook
その後、ブラウザで以下のURLにアクセスすることで、Jupyterノートブックにアクセスすることができます。
http://localhost:8888/tree?
データの取り込みとデータの可視化
今回は、有名な Tips データセットを使用します。
.csvファイルを読み込むためにPandasをインポートし、視覚化のために
matplotlib.pyplot`をインポートします。その後で、簡単な散布図を作成します。
このように、Jupyterノートブックでは通常データを可視化することができます。しかし、もしこのノートブックをそのままの形で誰かと共有すると、ビジュアライゼーションを見るためにコードを実行する必要があります。
もし、ビジュアライゼーションそのものをノートブック本体に含めたい場合は、Matplotlib のバックエンドを参照する inline
コマンドを使用します。
Matplotlib バックエンド
通常、プロットの表示には PyPlot の show()
関数を使用します。Jupyterノートブックでは、プロットを生成するコードを含むセルを実行した後にプロットが表示されるので、これは必要ではありません。これらのプロットはデフォルトではインラインで表示され、それはつまり、ノートブック自体に表示されます。
しかし、Matplotlibのバックエンドを変更することで、ノートブックの外側にプロットを表示することも可能です。Jupyter は自動的に Matplotlib バックエンドを設定しますが、これは %
文字で呼び出されるマジック関数で上書きすることができます。
IPython/Jupyter を使って外部ウィンドウに Matplotlib をプロットする。
まず、ノートブックから外部ウィンドウにプロットしてみましょう。
%matplotlib qt
ここでは、Jupyterノートブックに、ローカルマシンでフレームを生成する代わりにQtを使用するように指示しました。この関数呼び出しは、Matplotlib のインポートの前に位置しています。
Matplotlib IPython/Jupyter を使ってインラインでプロットする(インライン)
Jupyterの特定のバージョンでは、Matplotlibのバックエンドを正しく設定できず、グラフのインラインレンダリングに失敗することがあります。そのような場合、2つの方法のいずれかでインラインプロットを強制することができます。
qtの代わりに
inline` 関数を設定して、Jupyter にインラインでプロットを表示させることができます。
%matplotlib inline
これは、ノートブックを開いた誰もが、コードセルを再実行することなく、可視化を見ることができることを確認するのに役立ちます。
Matplotlib IPython/Jupyter を使ってインラインでプロットする (notebook)
ノートブック内で Matplotlib プロットをレンダリングする 2 番目の方法は、 notebook
バックエンドを使用することです。
%matplotlib notebook
Matplotlib notebook` を使用すると、ノートブック自体に埋め込まれたインタラクティブなプロットが作成され、ノートブックを見る人は、図のサイズを変更したり、図を拡大したりすることが可能になります。
結論
このチュートリアルでは、IPython/Jupyterノートブックで外部(Qtを使用)とインライン(inline
とnotebook
マジック関数を使用)でプロットする方法について説明しました。
もしあなたがデータ可視化に興味があり、何から始めたらいいかわからない場合は、Pythonでのデータ可視化に関する書籍の束をチェックしてみてください。
Pythonによるデータ可視化
データビジュアライゼーションで危険な存在になる
30日間無条件返金保証
初級から上級まで
定期的に無料で更新(最新更新は2021年4月)
ボーナスリソースやガイドを更新
Pythonでデータ可視化 MatplotlibとPandasは、Pythonの基礎知識を持つ全くの初心者が、PandasとMatplotlibを使って、単純なプロットからインタラクティブなボタンを持つアニメーションの3Dプロットまで、これらのライブラリで高度な作業をするための強力な基盤を構築できるように設計された書籍です。
本書は、Pythonの基本的な知識を持つ方を対象としています。
PandasとMatplotlibについて知っておく必要があることすべてを教えてくれる詳細なガイドです。
Pythonによるデータ可視化」は、Pythonの初級~中級開発者向けの書籍で、Pandasを使った簡単なデータ操作から、MatplotlibやSeabornなどのコアなプロットライブラリ、そしてAltairなどの宣言的・実験的ライブラリの活用方法までを案内しています。具体的には、11章にわたって、9つのPythonライブラリを取り上げています。Pandas、Matplotlib、Seaborn、Bokeh、Altair、Plotly、GGPlot、GeoPandas、そしてVisPyです。
データビジュアライゼーションのユニークで実用的なガイドとして、あなたがキャリアで使うかもしれない多くのツールを紹介しています。