Plotly Express⑯(ツリーマップ)

ツリーマップは階層データを長方形の面積で表現します。

親の階層の長方形内に子の階層の長方形が描画されます。

データの読み込み

まずはデータを読み込みます。

準備するデータはgapminderデータセット(年・国ごとの平均寿命と一人当たりのGDP)の2007年分を抽出したものとなります。

[Google Colaboratory]

1
2
3
4
5
import plotly.express as px

gapminder = px.data.gapminder()
gapmider_2007 = gapminder[gapminder["year"] == 2007]
gapmider_2007.head()

ツリーマップ

ツリーマップを描画するにはtreemap関数を使います。

treemap関数の引数は下記の通りです。

  • path
    データの階層をリストで指定。
  • names
    セクタごとのラベルを指定。
  • parents
    親セクタのラベルを指定。最上位の階層に対する場合は空の文字列を指定。
  • values
    セクタごとの値を指定。
  • branchvalues
    値を合計する方法を指定。
    “total”:親が子の階層すべての合計値
    “remainder”:子が親とは別の値

continent(大陸)が親で、country(国)が子となるツリーマップを描画します。

数値はpop(人口)を設定しています。

[Google Colaboratory]

1
2
3
px.treemap(
gapminder_2007, path=["continent", "country"], values="pop"
).show()

[実行結果]

ツリーマップの特定の階層をクリックすると、その階層がドリルダウンして描画されます。

親の階層をクリックすると元に戻ります。

[実行結果(Europeを選択)]

Plotly Express⑮(サンバーストグラフ)

サンバーストグラフは階層をもつデータを円または円弧の面積で表現します。

内側の円が最上位の階層となり、円の外側に隣接している円弧が下位の階層となります。

上位階層が下位階層の合計値となる場合と、上位階層と下位階層が独立した値をもつ場合があります。

データの読み込み

まずはデータを読み込みます。

準備するデータはgapminderデータセット(年・国ごとの平均寿命と一人当たりのGDP)の2007年分を抽出したものとなります。

[Google Colaboratory]

1
2
3
4
5
import plotly.express as px

gapminder = px.data.gapminder()
gapmider_2007 = gapminder[gapminder["year"] == 2007]
gapmider_2007.head()

サンバーストグラフ

サンバーストグラフを描画するにはsunburst関数を使います。

sunburst関数の引数は下記の通りです。

  • path
    データの階層をリストで指定。
  • names
    セクタごとのラベルを指定。
  • parents
    親セクタのラベルを指定。最上位の階層に対する場合は空の文字列を指定。
  • values
    セクタごとの値を指定。
  • branchvalues
    値を合計する方法を指定。
    “total”:親が子の階層すべての合計値
    “remainder”:子が親とは別の値

continentが親で、countryが子となるサンバーストを描画します。

[Google Colaboratory]

1
2
3
px.sunburst(
gapminder_2007, path=["continent", "country"], values="pop"
).show()

[実行結果]

サンバーストグラフの特定の階層をクリックすると、その階層がドリルダウンして描画されます。

親の階層をクリックすると元に戻ります。

[実行結果]

Plotly Express⑭(円グラフ)

今回は円グラフを表示してみます。

データの読み込み

まずはデータを読み込みます。

準備するデータはtipsデータセット(レストランの支払金額とチップの金額)です。

[Google Colaboratory]

1
2
3
4
import plotly.express as px

tips = px.data.tips()
tips.head()

円グラフ

円グラフを表示するためにはpie関数を使います。

引数のvaluesに値となる列名、namesにはラベルとなる列名を設定します。

[Google Colaboratory]

1
px.pie(tips, values="tip", names="day")

[実行結果]

tip(チップの金額)を値とし、day(曜日)で集計した円グラフを表示することができました。

Plotly Express⑬(ヒストグラム)

ヒストグラムとは、ある特定のデータを区間ごとに区切り、各区間の個数や数値のばらつきを棒グラフで表現するグラフです。

データの読み込み

まずはデータを読み込みます。

準備するデータはtipsデータセット(レストランの支払金額とチップの金額)です。

[Google Colaboratory]

1
2
3
4
import plotly.express as px

tips = px.data.tips()
tips.head()

ヒストグラム

ヒストグラムを表示するためにはhistgram関数を使います。

引数のxには、表示するデータの列名を指定します。

[Google Colaboratory]

1
px.histogram(tips, x="total_bill").show()

[実行結果]

total_billを値としたヒストグラムを表示することができました。

ヒストグラム(積み上げ/サブプロット)

histogram関数引数colorに列名を渡すと、指定した列名で積み上げたヒストグラムとなります。

また、引数marginalに以下の文字列を設定すると、指定したグラフをサブプロットに表示することができます。

  • histogram
    ヒストグラム
  • box
    箱ひげ図
  • violin
    バイオリン図
  • rug
    ラグプロット

[Google Colaboratory]

1
2
3
4
5
6
px.histogram(tips,
x="total_bill",
color="sex", # sex列で分割して積み上げ
marginal="box", # 箱ひげ図をサブプロットで表示
hover_data=tips.columns # ホバーツールにすべて列の値を表示
).show()

[実行結果]

sex列のデータで積み上げられたヒストグラムを表示し、サブプロットに箱ひげ図を表示することができました。

Plotly Express⑫(バイオリン図)

バイオリン図は、カーネル密度推定グラフを上下または左右に並べたグラフです。

箱ひげ図に似ていますが、分布データがすべて含まれているため、ピーク位置の把握に向いています。

データの読み込み

まずはデータを読み込みます。

準備するデータはtipsデータセット(レストランの支払金額とチップの金額)です。

[Google Colaboratory]

1
2
3
4
import plotly.express as px

tips = px.data.tips()
tips.head()

バイオリン図

バイオリン図を表示するためにはviolin関数を使います。

引数のxyには、表示するデータの列名を指定します。

その他の設定値に関してはコメントを参照してください。

[Google Colaboratory]

1
2
3
4
5
6
7
8
px.violin(tips,                     # データセット
x="smoker", # X軸に表示するデータ
y="tip", # Y軸に表示するデータ
color="sex", # sex列で色分け
box=True, # 箱ひげ図を重ねて描画
points="all", # すべての要素を点で描画
hover_data=tips.columns # ホバーツールにすべて列の値を表示
).show()

[実行結果]

バイオリン図を表示することができました。

Plotly Express⑪(箱ひげ図)

今回は箱ひげ図を表示します。

データの読み込み

まずはデータを読み込みます。

準備するデータはtipsデータセット(レストランの支払金額とチップの金額)です。

[Google Colaboratory]

1
2
3
4
import plotly.express as px

tips = px.data.tips()
tips.head()

箱ひげ図

箱ひげ図を表示するためにはbox関数を使います。

引数のxyには、表示するデータの列名を指定します。

[Google Colaboratory]

1
2
3
4
px.box(tips,            # データセット
x="time", # X軸に表示するデータ
y="total_bill" # Y軸に表示するデータ
).show()

[実行結果]

time列(Dinner/Lunch)で分類し、total_bill列(支払金額)をY軸とした箱ひげ図を表示することができました。


box関数引数notchedにTrueを渡すと、中央値の95%信頼区間がノッチ(切り込み)で表現することができます。

また引数pointsに”all”を渡すと、外れ値を含むすべての値を点で描画します。

ホバーツールにはday列を表示してみます。

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
px.box(tips,                            # データセット
x="time", # X軸に表示するデータ
y="total_bill", # Y軸に表示するデータ
color="smoker", # smoker列で色分け
notched=True, # ノッチを入れる
points="all", # すべての要素を点で描画
title="Box plot of total bill",
hover_data=["day"] # ホバーツールにday列の値を表示
).show()

[実行結果]

time列(Dinner/Lunch)に加えsmoker列で箱ひげ図が分類されて描画されました。

また各箱ひげ図の左となりに、個々のデータが点で表示されており直感的にデータの散らばり具合を確認することができるようになりました。

Plotly Express⑩(エラーバー)

エラーバーは誤差の範囲を図形(線分や交差した線など)で表示します。

棒グラフや折れ線グラフなどと併用して用いられます。

エラーバー

エラーバーを表示するには、グラフを描画する関数の引数error_xX値のエラー値、引数error_yY値のエラー値を設定します。

今回は、散布図にエラーバーを加えたグラフを表示します。

データはnumpy randomクラスのrandn関数を使って、-2~2までの100個の乱数を作成しています。

各エラー値も乱数を設定しています。(0.0~0.1の範囲で100個)

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
12
13
import plotly.express as px
import numpy as np
import pandas as pd

np.random.seed(1)
df = pd.DataFrame(np.random.randn(100, 2), columns=["x", "y"])

px.scatter(df, # データセット
x="x", # X軸に表示するデータ
y="y", # Y軸に表示するデータ
error_x=np.random.rand(100) * 0.1, # X値のエラー値
error_y=np.random.rand(100) * 0.1, # Y値のエラー値
).show()

[実行結果]

散布図の各データにエラーバーを追加したグラフを表示することができました。

Plotly Express⑨(面グラフ)

今回は面グラフを表示します。

データの読み込み

まずはデータを読み込みます。

準備するデータはgapminderデータセット(年・国ごとの平均寿命と一人当たりのGDP)です。

[Google Colaboratory]

1
2
3
4
import plotly.express as px

gapminder = px.data.gapminder()
gapminder.head()

面グラフ

面グラフを描画するためにはarea関数を使用します。

各パラメータの設定値に関しては、コメントをご参照下さい。

[Google Colaboratory]

1
2
3
4
5
6
px.area(gapminder,              # データセット
x="year", # X軸に表示する列
y="pop", # Y軸に表示する列
color="continent", # continent(大陸)列で積み上げた面グラフを描画
line_group="country" # country(国)列ごとに境界線を描画
).show()

[実行結果]

面グラフを表示することができました。

Plotly Express⑧(積み上げ棒グラフ)

今回は積み上げ棒グラフを表示します。

データの読み込み

まずはデータを読み込みます。

準備するデータはtipsデータセット(レストランの支払金額とチップの金額)です。

[Google Colaboratory]

1
2
3
4
import plotly.express as px

tips = px.data.tips()
tips.head()

積み上げ棒グラフ

bar関数のcolorオプションに離散値である列名を指定すると、データを分割した積み上げ棒グラフを表示することができます。

各パラメータの設定値に関しては、コメントをご参照下さい。

[Google Colaboratory]

1
2
3
4
5
px.bar(tips,            # データセット
x="sex", # X軸に表示する列
y="total_bill", # Y軸に表示する列
color="time" # time列で分割して積み上げ
).show()

[実行結果]

また、bar関数のbarmodeオプション“group”指定すると、colorオプションで指定した列(smoker)でグループ化された棒グラフを表示することができます。

[Google Colaboratory]

1
2
3
4
5
6
px.bar(tips,            # データセット
x="sex", # X軸に表示する列
y="total_bill", # Y軸に表示するれつ
color="smoker", # smoker列で分割して
barmode="group" # グループ化
).show()

[実行結果]

Plotly Express⑦(棒グラフ)

今回は棒グラフを表示します。

データの読み込み

まずはデータを読み込みます。

準備するデータはgapminderデータセット(年・国ごとの平均寿命と一人当たりのGDP)です。

[Google Colaboratory]

1
2
3
4
import plotly.express as px

gapminder_Canada = px.data.gapminder().loc[gapminder["country"] == "Canada"]
gapminder_Canada.head()

棒グラフ

棒グラフを表示するためにはbar関数を使用します。

各パラメータの設定値に関しては、コメントをご参照下さい。

[Google Colaboratory]

1
2
3
4
5
6
px.bar(gapminder_Canada,        # データセット
x="year", # X軸に表示するデータ
y="pop", # Y軸に表示するデータ
color="lifeExp", # 値をカラースケールで表現
hover_data=["lifeExp", "gdpPercap"], # ホバーツールに表示
).show()

[実行結果]

棒グラフを表示することができました。