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()

[実行結果]

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

Plotly Express⑥(散布図行列)

今回は散布図行列を表示します。

データの読み込み

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

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

[Google Colaboratory]

1
2
3
4
import plotly.express as px

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

散布図行列

散布図行列を表示するためにはscatter_matrix関数を使用します。

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

[Google Colaboratory]

1
2
3
4
5
scatter_matrix_fig = px.scatter_matrix(tips,             # データセット
dimensions=["total_bill", "tip", "size"], # 描画対象の列名
color="time", # time列で色分け
symbol="smoker", # smoker列ごとにマーカの形状で分類
).show()

[実行結果]

散布図行列を表示することができました。

Plotly Express⑤(散布図)

今回は散布図を表示します。

データ読み込み

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

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

[Google Colaboratory]

1
2
3
4
import plotly.express as px

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

[実行結果]

散布図

散布図を表示するためにはscatter関数を使用します。

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

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
gapminder_2007 = gapminder.loc[gapminder["year"] == 2007]
px.scatter(
gapminder_2007,
x="gdpPercap", # 一人当たりのGDP
y="lifeExp", # 平均寿命
size="pop", # 要素の大きさ
color="continent", # 要素の色
hover_name="country", # ホバーツールのタイトル
log_x=True, # X軸を対数にとる
size_max=60, # 要素の大きさの最大値
).show()

[実行結果]

散布図を表示することができました。

(要素の大きさを指定しているのでバブルチャートということもできます)

Plotly Express④(ラインチャート)

今回はPlotly Expressを使って折れ線グラフを表示します。

ラインチャート

ラインチャートを表示するためにはline関数を使用します。

[Google Colaboratory]

1
2
3
4
5
import pandas as pd
import plotly.express as px

df = pd.DataFrame([[1, 1], [2, 5], [3, 4], [4, 8], [5, 2]], columns=["x", "y"])
px.line(df, x="x", y="y").show()

2次元のリストデータを作成し、それをデータフレームに変換し、line関数の第一引数に設定します。

[実行結果]

ラインチャート(折れ線グラフ)を表示することができました。

Plotly Express③(バブルチャート)

前回記事に引き続きバブルチャートを表示します。

バブルチャート(大陸ごと)

ファセットを利用すると、データをカテゴリごとに分割して可視化することができます。

facet_col“continent”を指定し、大陸ごとに別のグラフで描画します。(10行目)

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
facet_fig = px.scatter(
gapminder,
x="gdpPercap",
y="lifeExp",
log_x=True,
hover_name="country",
size="pop",
size_max=40,
color="continent",
facet_col="continent", # 大陸ごとのグラフに分割
width=1200 # グラフの横幅
)
facet_fig.update_xaxes(tickfont={"size": 8}) # X軸ラベルのフォントサイズ
facet_fig.show()

[実行結果]

バブルチャート(年ごと)

データセットには年のデータ含まれています。(これまではすべての年のデータをまとめて描画していました。)

アニメーション機能を使って年ごとのバブルチャートを描画します。(12行目)

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
animation_fig = px.scatter(
gapminder,
x="gdpPercap",
y="lifeExp",
log_x=True,
hover_name="country",
size="pop",
size_max=40,
color="continent",
facet_col="continent",
width=1200,
animation_frame="year", # 年ごとのデータでアニメーション
)
animation_fig.update_xaxes(tickfont={"size": 8})
animation_fig.show()

[実行結果]

グラフの下に再生ボタンスライダーが表示され、年ごとにバブルチャートを切り替えることができます。

スライダを操作すると、指定した年のデータ描画されます。

まとめ

最初の散布図では以下の2つの情報しか表現できませんでした。

  • 一人あたりのGDP
  • 平均寿命

Plotly Expressでインタラクティブな可視化を行うことにより、次のような情報も合わせて確認できるようになりました。

  • 国名
    ホバーツールで表示。
  • 人口
    バブルの大きさで表示。
  • 大陸名
    バブルの色またはグラフの分割で表示。

  • アニメーションまたはスライドで表示切替。

Plotly Express②(バブルチャート)

前回記事から引き続き、gapminderデータセットを使います。

バブルチャート

人口の情報を散布図に加え、点の大きさで表現したバブルチャートを描画します。

また大陸(continent列)ごとに要素を色分けします。

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
px.scatter(
gapminder,
x="gdpPercap",
y="lifeExp",
log_x=True,
hover_name="country",
size="pop", # 人口を点の大きさで表現
size_max=40, # 点の大きさの最大値
color="continent", # 大陸ごとに色分け
width=800 # グラフの横幅
).show()

[実行結果]

より多くの情報を得られるようになりました。

凡例(グラフ右上に表示)をクリックすると大陸ごとに表示・非表示を切り替えることができます。

ヨーロッパとアメリカのみを表示すると次のようなグラフになります。

[実行結果]

特定の要素にカーソルを合わせると、ホバーツールが表示され座標の情報に加え、国名・大陸名・人口の情報を確認することができます。