Skip to content

プロットリーのヒートマップ - ヒント、トリック、および例

Updated on

ヒートマップは、データの視覚化における強力なツールです。複雑なデータを直感的に表現することができ、データサイエンティストやアナリストにとって欠かせないツールです。ヒートマップを作成するための最も人気のあるライブラリの1つは、PythonのPlotlyです。Plotlyは高度なカスタマイズと対話性を提供するPythonライブラリで、ヒートマップの作成に使用できます。このガイドでは、Plotlyのヒートマップの世界に深く入り込み、機能を探求し、実用的な例を提供し、見事な視覚化を作成するのに役立ちます。

Plotlyは多機能なライブラリで、ヒートマップの作成に関する包括的な理解を提供します。Plotlyのヒートマップは見た目が魅力的だけでなく、ズーム、パン、ホバーなどを使用してデータのより深い理解を得るために対話的に使用することもできます。このガイドでは、データの視覚化ニーズに合わせてPlotlyのヒートマップを作成、カスタマイズ、最適化する方法について包括的に説明します。

ヒートマップとは何ですか?

ヒートマップは、個々の値を色として表現するデータのグラフィカルな表現です。データポイントが多く、パターンや相関に興味がある場合に特に便利なデータのプロット方法です。ヒートマップのカラーバリエーションはパターンを容易に示し、情報のクイックな視覚的要約を提供します。

プロットリーのヒートマップとは?

Plotlyのヒートマップは、PythonのPlotlyライブラリを使用して生成できるヒートマップの一種です。Plotlyは、対話的でカスタマイズ可能なヒートマップを作成するための強力なツールを提供します。Plotlyを使用すると、対話的でカスタマイズ可能なヒートマップを作成し、ウェブサイトやアプリに簡単に共有または埋め込むことができます。

プロットリーのヒートマップの作成方法

プロットリーのヒートマップの作成には、いくつかの重要なステップが必要です。まず、必要なライブラリをインポートし、データをロードする必要があります。Plotlyの高レベルインターフェースであるPlotly Expressを使用すると、わずか数行のコードでヒートマップを作成できます。基本的な例を以下に示します:

import plotly.express as px
 
# dfがpandas DataFrameであると仮定しています
fig = px.imshow(df)
fig.show()

この例では、px.imshow()を使用してDataFrame dfからヒートマップを作成します。作成したヒートマップは、fig.show()を使用して表示できます。

プロットリーのヒートマップに注釈を追加する

Plotlyのヒートマップに注釈を追加すると、データポイントに関する追加情報を提供できます。これは、Plotlyのadd_annotation()関数を使用して行うことができます。以下に例を示します:

import plotly.graph_objects as go
 
fig = go.Figure(data=go.Heatmap(
                   z=[[1, 20, 30],
                      [20, 1, 60],
                      [30, 60, 1]]))
fig.add_annotation(text="注釈付きヒートマップ",
                  xref="paper", yref="paper",
                  x=0.5, y=-0.15, showarrow=False)
 
fig.show()

この例では、ヒートマップの下に注釈が追加されます。xrefyrefパラメータは「paper」に設定されており、これは座標が図のサイズに対して相対的であることを意味します。左下が(0、0)であり、右上が(1、1)です。

Pythonで相関ヒートマップを作成する

相関ヒートマップは、データセットの相関行列を視覚化するためによく使用されるヒートマップの一種です。相関行列は、多くの変数間の相関係数を示すテーブルです。テーブルの各セルには、2つの変数間の相関が表示されます。相関行列は、データの要約、より高度な分析への入力、および高度な分析の診断として使用されます。

Pythonでは、Plotlyライブラリを使用して相関ヒートマップを作成できます。以下に例を示します:

import plotly.figure_factory as ff
import numpy as np
import pandas as pd
 
# dfがpandas DataFrameであると仮定しています
corr_matrix = df.corr()
heatmap = ff.create_annotated_heatmap(z=corr_matrix.values, 
                                      x=list(corr_matrix.columns), 
                                      y=list(corr_matrix.index), 
                                      annotation_text=corr_matrix.round(2).values, 
                                      showscale=True)
 
heatmap.show()

この例では、最初にDataFrame dfの相関行列をcorr()関数を使用して計算します。次に、plotly.figure_factorycreate_annotated_heatmap()関数を使用して注釈付きヒートマップを作成します。注釈テキストには相関値が小数点以下2桁まで丸められます。

プロットリーのヒートマップのカラースケールの変更

ヒートマップのカラースケールは、データやユーザーの美的な好みに合わせて変更することができます。Plotlyには、Cividis、Electric、Viridisなどのさまざまなカラースケールが用意されています。カラースケールを変更する方法は次のとおりです:

import plotly.express as px
 
# dfがpandas DataFrameであると仮定しています
fig = px.imshow(df, colorscale='Viridis')
fig.show()

この例では、imshow()関数のcolorscaleパラメータを使用してカラースケールを「Viridis」に設定します。結果として得られるヒートマップは、ダークパープルからイエローまでのViridisカラースケールを使用します。

Plotly Expressを使用したヒートマップ

Plotly Expressは、少ないコードで複雑な視覚化を作成するのに便利なPlotlyの高レベルインターフェースです。特にヒートマップの作成に便利です。以下は、Plotly Expressを使用してヒートマップを作成する例です:

import plotly.express as px
 
# dfがpandas DataFrameであると仮定しています
fig = px.imshow(df)
fig.show()

このマークダウンファイルでは、埋め込まれたコードを翻訳せずに日本語の翻訳を提供してください。

例として、Plotly Expressのimshow()関数を使用してヒートマップを作成します。この関数はDataFrameからx軸とy軸のラベルを自動的に推測するため、ヒートマップの作成がさらに簡単になります。

Plotlyヒートマップを使用したインタラクティブなダッシュボード

Plotlyの最も強力な機能の一つは、インタラクティブなダッシュボードを作成する能力です。これらのダッシュボードにはヒートマップを含む複数の可視化が含まれ、ユーザーはデータと対話的にやり取りすることができます。以下は、Plotlyのヒートマップを使用したインタラクティブなダッシュボードの作成例です。

import plotly.graph_objs as go
from plotly.subplots import make_subplots
 
# df1とdf2がpandasのDataFrameであると仮定します
fig = make_subplots(rows=1, cols=2)
 
heatmap1 = go.Heatmap(z=df1.values, colorscale='Viridis')
heatmap2 = go.Heatmap(z=df2.values, colorscale='Cividis')
 
fig.add_trace(heatmap1, row=1, col=1)
fig.add_trace(heatmap2, row=1, col=2)
 
fig.show()

この例では、2つの列を持つプロットを作成します。次に、異なるDataFrameを使用して2つのヒートマップを作成し、それらをプロットに追加します。生成されるダッシュボードには、両方のヒートマップが並んで表示され、ユーザーは対話的に比較することができます。

PyGWalkerで簡単にヒートマップを作成する

Plotlyを使用せずにpandasのデータフレームからヒートマップを作成する別のオプションは、オープンソースのPythonライブラリであるPyGWalkerを使用することです。PyGWalkerでは、変数をドラッグアンドドロップしてデータの可視化を作成することができます。

以下は、すぐに始める方法です。

PyGWalkerのセットアップ

始める前に、pipまたはcondaを使用して必要なパッケージをコマンドラインでインストールしてください。 pipを使用する場合: PyGWalkerをインストールするには、次のコマンドを実行します。

pip install pygwalker

最新のリリースとバージョンを最新に保ちたい場合は、次のコマンドを試してみてください。

pip install pygwalker --upgrade

さらに、最新の機能とバグ修正を取得するには、次のコマンドも使用できます。

pip install pygwalker --upgrade --pre

conda-forgeを使用する場合:

conda-forgeを通じてPyGWalkerをインストールするには、次のいずれかのコマンドを実行します。

conda install -c conda-forge pygwalker

または

mamba install -c conda-forge pygwalker

詳細なヘルプについては、conda-forgeのフィードストックをチェックしてください。

PyGWalkerを実行する

PyGWalkerがインストールされたら、pandasとPyGWalkerをインポートしてJupyter Notebookで使用できるようにすることができます。

import pandas as pd
import pygwalker as pyg

PyGWalkerは既存のワークフローにスムーズに統合されます。たとえば、データフレームでグラフィックウォーカーを呼び出すには、pandasを使用してデータをロードし、次のように実行します。

df = pd.read_csv('./bike_sharing_dc.csv', parse_dates=['date'])
gwalker = pyg.walk(df)

polarsを使用している場合(バージョンpygwalker>=0.1.4.7a0)、次のようにPyGWalkerを使用することもできます。

import polars as pl
df = pl.read_csv('./bike_sharing_dc.csv',try_parse_dates = True)
gwalker = pyg.walk(df)

さらなる柔軟性を求める場合は、Binder (opens in a new tab)Google Colab (opens in a new tab)、またはKaggle Code (opens in a new tab)を介してオンラインでPyGWalkerを試すこともできます。

以上です。これで、変数をドラッグアンドドロップしてデータを分析および可視化するためのTableauのようなユーザーインターフェースが使用できます。 TableauのようなUIを備えたPyGWalker

ヒートマップの作成

PandasまたはPolarsのデータフレームをインポートした後、簡単にヒートマップを作成できます。

  1. ツールバーの「Mark Type」ボタンを選択し、「Rectangle」を選択します。
  2. 変数を左クリックすると、メニューが表示されます。 BINオプションを選択します。

PyGWalkerは、情熱的なデータサイエンティストや開発者のコミュニティのサポートを受けて構築されています。PyGWalkerのGitHubページ (opens in a new tab)をチェックして、スターをつけましょう!

よくある質問

  1. Plotlyのヒートマップとは何ですか? プロットリブラリであるPlotlyを使用して生成できるヒートマップの一種です。これは、複雑なヒートマップの可視化を作成するための機能を提供しています。

  2. Plotlyのヒートマップを作成する方法は? Plotlyのヒートマップは、Plotly Expressのimshow()関数またはplotly.graph_objectsHeatmap()関数を使用して作成できます。データをこれらの関数に渡し、fig.show()を使用して表示することが必要です。

  3. Plotlyのヒートマップに注釈を追加することはできますか? はい、add_annotation()関数を使用してPlotlyのヒートマップに注釈を追加することができます。これにより、ヒートマップに追加のテキストや情報を追加することができます。