plotly: plotlyの概要。Pythonでインタラクティブな図を描く

探索的データ分析(EDA)において、データ構造、パターン、異常値を発見するために、より高速、インタラクティブにデータを可視化したいことがあります。

これまで、データ可視化にmatplotlibとseabornを利用していましたが、「データ可視化ライブラリー:plotly」を目にする機会も増えました。

ワカメさん

plotlyとは何でしょう?この記事は「plotlyの概要」についてまとめます。

この記事がカバーする内容
  • plotlyとはどのようなライブラリか?
  • plotlyで何ができるか?
  • Graph ObjectsとPlotly Expressの違いは何か?
スポンサーリンク

plotlyとは?

概要

Fig 1: Concept of plotly (1)

plotlyは、JavaScript、D3.js、HTML、CSSをベースに開発されたインタラクティブなグラフの作成を可能とするオープンソース・ライブラリです。plotlyは、Python, R, Julia, Javascript, ggplot2, MATLAB, Dashなどで利用可能です。

plotlyで作成できるグラフは、線グラフ、散布図、地図チャート、バーグラフ、エラーバー, ボックスプロット、ヒストグラム、ヒートマップ、サブプロット、ポーラチャート、バブルチャートが挙げられます。

plotlyは、データサイエンス、データ分析、AI開発の仕事のサポートに十分すぎるほどパワフルかつ柔軟なライブラリです。

ワカメさん

plotlyはApach Sparkからでも利用可能とのことです。(2) Spark環境下でもplotlyが使えるのはありがたいですね。

価格について

ヒトデちゃん

便利そうなplotlyですが、無料で利用できるんでしょうか?

plotlyは、MITライセンスのオープン・ソースソフトウェアです。Pythonでplotlyの利用は無料です。(3)

plotlyのインストール、利用にお金を払う必要はありません。登録なしに、plotlyのサービスを利用して、チャート、マップを作成・閲覧・配布可能です。オフラインでplotlyの利用は可能です。

しかしながら、オンラインで非公開なグラフを作るとき、高度な機能を追加したい場合は有料になります。

また、webアプリケーションを開発するため、Dashと呼ばれるwebベース分析アプリケーション開発のためのフレームワークを利用します。Dashを使用することで、plotlyのグラフを簡単に開発アプリケーションに組み込めます。

DashもMITライセンスを受けたオープンソース・ソフトウェアです。Dashも無料で利用できます。DashEnterpriseやChartStudioEnterpriseは商用製品となります。

Graph ObjectsとPlotly Express

plotlyが提供するplotly.graph_objectsplotly.expressの違いは何か?結論として、両者の機能は同じです。

plotly.expressはGraph Objectsのトップに作成され、様々なタイプの図をplotly.graph_objectsより短いコードで簡単に作成するための関数を提供しています。

Plotly Expressの概要

Plotly Expressは、plotly.graph_objects.Figureのインスタンスを返し、uppdate_layoutadd_traceで編集可能です。

Plotly Expressを利用すれば、以下のタイプの図を比較的短いコードで簡単に作成できます。

Graph Objectsの概要

Guraph Objectsは、plotly.graph_objectsモジュール(通常goとしてインポート)に含まれているクラスのインスタンスを指します。

plotly.graph_objectsplotly.expressの機能が同じならば、plotly.graph_objectsはいつ使用するのでしょうか。

例えば、22年時点では、plotly.expressで3dメッシュやサブプロットグラフを描くことができません。

要するに、plotly.graph_objectsplotly.expressで描けない複雑な図を描きたい時に使用します。

ワカメさん

目的によりますが、まずは短いコードでグラフを描けるplotly.expressの使用が勧められます。

最後に、plotlyが如何にパワフルか伝えるため、公式から配信されている動画を紹介します。(SciPy 2021 conferenceより)

ヒトデちゃん

これはすごい!私もplotlyユーザになれるようplotlyを使ってみたい!

まとめ

この記事はplotlyについてまとめました。

plotlyの概要
  • plotlyとは
    • インタラクティブなグラフの作成を可能とするオープンソース・ライブラリ
    • JavaScript, D3.js, HTML, CSSをベースに開発
    • Python, R, Julia, Javascript, ggplot2, MATLAB, Dashで利用可能
    • MITライセンスのオープン・ソースソフトウェア
    • Pythonでplotlyの利用は無料
  • plotlyでできること
    • 線グラフ、散布図、地図チャート、バーグラフ、エラーバー, ボックスプロット、ヒストグラム、ヒートマップ、サブプロット、ポーラチャート、バブルチャートなどの作成
    • Dashを利用すればplotlyのグラフを簡単に開発アプリケーションに組み込み可能
  • Graph ObjectsとPlotly Expressの違い
    • plotly.express:短いコードでインタラクティブな図を簡単に作成
    • plotly.graph_objects: plotly.expressで描けない複雑な図を作成
ワカメさん

plotlyは扱っていてかなり面白いと思うので、引き続き勉強していきたいです。

この記事は以上です。最後まで読んで頂きありがとうございました。

参考資料

(1) GitHub, plotly/plotly.py

(2) Plot Data from Apache Spark in Python/v3

(3) plotly, Is Plotly for Python Free?

(4) plotly, Graph Objects in Python

(5) plotly, Plotly Express in Python

スポンサーリンク
この記事が気にいったらシェアしてね!
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
ABOUT US
ワカメ
Data Scientist, Master of Data Science & Master of Engineering in Material Science
このブログは以下2点を目的に運営.
1. 管理人の学び・体験の復習機会
2. 海外留学を目指す方の参考情報
趣味の範囲で淡々と更新します.
*ブログ・SNSは所属組織と無関係の個人発信.