Skip to content

Plotly Express: わかりやすく説明された

Updated on

データの視覚化は、データ解析や機械学習の重要な要素です。これにより、複雑なデータセットを理解し、生のデータからは明確でない見解を描くことができます。このプロセスを非常に簡単にするツールの1つが、Plotly Expressです。

Plotly Expressは、データ視覚化のための高レベルインタフェースです。複雑なプロットの作成プロセスを簡素化し、初心者が素晴らしいビジュアライゼーションを作成するのを容易にします。初心者でも経験豊富なプログラマでも、この包括的なガイドはあなたにPlotly Expressの完全なポテンシャルを引き出す方法を示します。

Plotly Expressとは?

Plotly Express(しばしばPXと略されます)は、複雑なプロットの作成プロセスを簡素化するPlotly.pyのラッパーです。少ないコード行で見栄えの良いビジュアライゼーションを作成するための高レベルインタフェースを提供します。

Plotly Expressは、散布図、折れ線グラフ、棒グラフなどの様々なチャートをサポートしています。また、アニメーションもサポートしており、時間の経過やユーザーの操作に応じて変化するインタラクティブなプロットを作成することが可能です。

Plotly Expressの特徴の1つは、PandasのDataFramesとの統合です。これにより、DataFrameオブジェクトをPlotly Express関数に直接渡すことができ、大規模なデータセットとの作業が容易になります。

Plotly Express vs Plotly Graph Objects

Plotly ExpressとPlotly Graph Objectsは、いずれもPlotlyエコシステムの一部ですが、異なる目的を持っています。Plotly Graph Objectsは、より多くの制御とカスタマイズオプションを提供する低レベルインタフェースです。一方、Plotly Expressは、プロット作成プロセスを簡素化する高レベルインタフェースです。

初心者にとっては、Plotly Expressの方が良い選択肢です。使用が簡単で、複雑なビジュアライゼーションを作成するためのコードが少なくて済みます。ただし、プロットに対してより多くの制御を必要とする場合や、カスタムビジュアライゼーションを作成したい場合は、Plotly Graph Objectsの方が適しているかもしれません。

Plotly Expressでの可視化の種類

Plotly Expressは、さまざまな可視化をサポートしています。以下は最も一般的なタイプのいくつかです。

  1. 散布図: 散布図は、2つの数値変数の関係を表示するために使用されます。データ内の傾向、パターン、外れ値を特定するのに便利です。

  2. 折れ線グラフ: 折れ線グラフは、時間の経過に伴うデータを表示するために使用されます。時間系列分析や時間の経過に伴う変化を追跡するのに一般的に使用されます。

  3. 棒グラフ: 棒グラフは、異なるカテゴリの頻度、数え上げ、その他の特性を比較するために使用されます。カテゴリデータに適しています。

  4. ヒストグラム: ヒストグラムは、単一の数値変数の分布を表示するために使用されます。データの広がりや歪度を理解するのに役立ちます。

  5. ボックスプロット: ボックスプロットは、数値変数の統計的な概要を表示するために使用されます。データ内の中央値、四分位数、潜在的な外れ値を示します。

  6. ヒートマップ: ヒートマップは、2つ以上の変数間の相関関係を表示するために使用されます。データ内のパターンやクラスタを特定するのに役立ちます。

これらの可視化は、Plotly Expressでわずか数行のコードで作成することができます。次のセクションでは、これらのプロットを作成する方法のいくつかの例を見てみましょう。

PythonへのPlotly Expressのインポート

Plotly Expressを使用して可視化を作成するには、まずPython環境にインポートする必要があります。まだPlotlyをインストールしていない場合は、以下のコマンドでインストールできます。

pip install plotly

Plotlyがインストールされたら、次のようにPlotly Expressをインポートします。

import plotly.express as px

Plotly Expressをインポートしたら、見栄えの良いビジュアライゼーションの作成を開始する準備が整いました!

Plotly Expressでの可視化の作成

Plotly Expressを使用して可視化を作成するのは簡単です。まず、簡単な散布図を作成してみましょう。まず、いくつかのデータが必要です。この例では、組み込みの"iris"データセットを使用します。

df = px.data.iris()

では、がく片の幅とがく片の長さの散布図を作成してみましょう。

fig = px.scatter(df, x="sepal_width", y="sepal_length")
fig.show()

たった3行のコードで、散布図が作成されました!しかし、Plotly Expressは散布図だけでなく、それ以上のことができます。次は、"gapminder"データセットを使用して折れ線グラフを作成しましょう。

df = px.data.gapminder().query("country=='Canada'")
fig = px.line(df, x="year", y="lifeExp", title='カナダの平均寿命')
fig.show()

再び、わずか数行のコードでカナダの平均寿命の時系列グラフが作成されました。

Plotly Expressでのプロットのカスタマイズ

Plotly Expressの強みの1つは、カスタマイズオプションです。簡単に色やラベルなど、プロットのさまざまな側面を変更することができます。

例えば、先ほどの散布図をカスタマイズしてみましょう。種別ごとに点の色を変え、ラベルを変更します。

fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species",
                 labels={
                     "sepal_width": "がく片の幅 (cm)",
                     "sepal_length": "がく片の長さ (cm)",
                     "species": "種別"
                 },
                 title="アヤメのがく片の大きさ")
fig.show()

これらのカスタマイズにより、プロットはよりわかりやすくなります。種別を簡単に区別することができ、ラベルも明確になります。

Plotly Express vs その他のライブラリ

Pythonでデータ可視化に関する話題になると、選ぶことができるいくつかのライブラリがあります。Plotly Express以外でも、MatplotlibとSeabornという2つの非常に人気があります。

Matplotlibは、単純さに代えて柔軟性が非常に高い低レベルのライブラリです。思いつくほとんどの可視化を作成できますが、それには多くのコードが必要な場合が多いです。

Seabornは、Matplotlibの上に構築された高レベルのライブラリです。より複雑な可視化のプロセスを簡略化しますが、カスタマイズにはまだかなりの量のコードが必要です。

一方、Plotly Expressは、簡単さと柔軟性のバランスを取っています。最小限のコードで複雑な可視化を作成することができ、さまざまなカスタマイズオプションも提供しています。また、MatplotlibやSeabornで作成された静的なプロットと比較して、Plotly Expressプロットの対話的な性質は非常に大きな利点です。

Python Pandasデータフレームからコードなしで素早くデータ可視化を作成したいですか?

PyGWalkerは、可視化を伴う探索的データ分析のためのPythonライブラリです。PyGWalker (opens in a new tab)は、pandasデータフレーム(およびpolarsデータフレーム)をTableauスタイルのユーザーインターフェースに変換することによって、Jupyter Notebookのデータ分析とデータ可視化のワークフローを簡素化できます。

PyGWalkerによるデータ可視化 (opens in a new tab)

Plotly Expressでの凡例とその他の要素の追加

Plotly Expressのプロットに凡例、タイトル、ラベルを追加するのは簡単です。これらのほとんどはプロット関数自体内で直接行うことができます。たとえば、プロットにタイトルを追加するには、titleパラメータを使用することができます。

fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", title="Iris Sepal Dimensions")
fig.show()

軸ラベルを追加するには、前の例で見たようにlabelsパラメータを使用できます。データの異なるカテゴリを区別するためにcolorパラメータを使用すると、自動的に凡例が追加されます。

より高度なカスタマイズには、update_layoutメソッドを使用できます。

fig.update_layout(
    title="Iris Sepal Dimensions",
    xaxis_title="Sepal Width (cm)",
    yaxis_title="Sepal Length (cm)",
    legend_title="Species",
    font=dict(
        family="Courier New, monospace",
        size=18,
        color="RebeccaPurple"
    )
)

これにより、タイトル、ラベル、凡例のフォント、サイズ、色などをカスタマイズすることができます。

さあ、Plotly Expressに関するよくある質問に移りましょう。

よくある質問

  1. Plotly Expressとは何ですか? Plotly Expressは、Pythonでの高レベルのデータ可視化ライブラリです。複雑なプロットの作成プロセスを簡略化するためのPlotly.pyのラッパーです。

  2. Plotly ExpressはPlotly Graph Objectsとどのように異なりますか? Plotly ExpressはPlotlyへの高レベルのインターフェースであり、より少ないコードで複雑なプロットを作成できます。一方、Plotly Graph Objectsはより低レベルのインターフェースであり、より多くの制御とカスタマイズオプションを提供します。

  3. Plotly Expressで作成できる可視化の種類は何ですか? Plotly Expressは、散布図、折れ線グラフ、棒グラフ、ヒストグラム、箱ひげ図、ヒートマップなど、さまざまな種類の可視化をサポートしています。アニメーションもサポートしています。

  4. 初心者にはPlotly Expressが適していますか? はい、Plotly Expressは使いやすく、複雑な可視化を作成するのに少ないコードが必要ですので、初心者にとっては最適な選択肢です。

  5. PythonでどのようにPlotly Expressをインポートできますか? 次のコードを使用して、PythonにPlotly Expressをインポートすることができます: import plotly.express as px