Plotly ツリーマップ

Ammar Ali 2022年4月12日 2022年4月1日
Plotly ツリーマップ

このチュートリアルでは、Python で Plotly の treemap() 関数を使用してツリーマップチャートを作成する方法について説明します。

Python で Plotly の treemap() 関数を使用してツリーマップチャートを作成する

ツリーマップチャートは、データをチャート上のネストされた長方形として表します。plotly.expresstreemap() 関数を使用して、Python でツリーマップチャートを作成できます。ツリーマップチャートを作成するには、親の名前を定義して、treemap() 関数内に渡す必要があります。

たとえば、Tony には EmilyDraco の 2 人の子供がいて、Emily には AndreeJason という 2 人の子供がいて、Draco には Peter という 1 人の子供がいるという家族のツリーマップを作成してみましょう。

リスト内の家族のすべての名前を定義して names 引数に渡し、次に各メンバーの親を定義して parents 引数に渡します。

以下のコードを参照してください。

import plotly.express as px

names =["Tony","Andree","Jason","Emily","Petter","Draco"]
parents = ["","Emily","Emily","Tony","Draco","Tony"]
fig = px.treemap(names=names, parents=parents)
fig.show()

出力:

家族のツリーマップ

Tony には親がないため、parents リストの最初の要素は空です。width と height 引数を使用して、プロットの幅と高さを設定できます。

color 引数を使用すると、デフォルトの色シーケンスを使用して、各長方形に異なる色を与えることができます。title 引数を使用して、ヒストグラムにタイトルを付けることができます。

hover_name 引数を使用してホバータイトルを変更し、その値を入力データと同じサイズのリストに設定できます。ids 引数を使用して、各三角形に異なる ID を与えることができます。

たとえば、上記のプロパティを変更してみましょう。以下のコードを参照してください。

import plotly.express as px

names =["Tony","Andree","Jason","Emily","Petter","Draco"]
parents = ["","Emily","Emily","Tony","Draco","Tony"]
fig = px.treemap(names=names, parents=parents, color=names, title='Family Treemap', hover_name=names, ids=names)
fig.show()

出力:

ツリーマップのプロパティの変更

color_discrete_sequence という引数を使って、デフォルトのカラーシーケンスを変更することができます。color_discrete_sequence 引数を使ってデフォルトの色の並びを変更することができます。この色の並びは、Plotly がサポートしている Dark24Light24 などの色の並びに設定できます。

たとえば、上記のヒストグラムのカラーシーケンスを変更してみましょう。以下のコードを参照してください。

import plotly.express as px

names =["Tony","Andree","Jason","Emily","Petter","Draco"]
parents = ["","Emily","Emily","Tony","Draco","Tony"]
fig = px.treemap(names=names, parents=parents, color=names,color_discrete_sequence=px.colors.qualitative.Light24)
fig.show()

出力:

ツリーマップのカラーシーケンスの変更

カラーシーケンスを使用する代わりに、color_discrete_map 引数を使用して各長方形に任意の色を与えることもできます。この引数は、デフォルトの色を上書きするために使用されます。

いくつかの長方形の色を変更するだけの場合、残りはカラーシーケンスから割り当てられます。たとえば、最初の 2つの長方形の色を黄色と黒に変更してみましょう。

以下のコードを参照してください。

import plotly.express as px

names =["Tony","Andree","Jason","Emily","Petter","Draco"]
parents = ["","Emily","Emily","Tony","Draco","Tony"]
fig = px.treemap(names=names, parents=parents, color=names,color_discrete_sequence=px.colors.qualitative.Light24, color_discrete_map={'Tony': 'yellow', 'Emily': 'black'})
fig.show()

出力:

ツリーマップの各長方形の色を変更する

データフレームを使用してツリーマップチャートを作成することもできます。たとえば、2007 年の世界の平均余命データを読み、大陸名を親、国名を子としてツリーマップを作成しましょう。

以下のコードを参照してください。

import plotly.express as px

df = px.data.gapminder().query("year == 2007")
fig = px.treemap(df, path=[px.Constant("world"), 'continent', 'country'],
color='lifeExp', hover_data=['country'],
color_continuous_scale='RdBu')
fig.show()

出力:

データフレームのツリーマップ

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

関連記事 - Plotly Plot