Plotly 箱ひげ図
このチュートリアルでは、Plotly の box() 関数を使用して箱ひげ図を作成する方法について説明します。
Plotly 箱ひげ図
Plotly の箱ひげ図は、四分位数を介した変数の分布を表します。ボックスの端は下部と上部の四分位数を表し、ボックス内の線は中央値または 2 番目の四分位数を示します。
Plotly の box() 関数を使用して、指定されたデータの箱ひげ図を作成できます。箱ひげ図を作成するには、box() 関数内にデータフレームまたは値とラベルを指定する必要があります。
以下のコードは、いくつかのランダムデータの箱ひげ図を作成します。
import plotly.express as px
labels = ["A", "B", "C"]
value = [[10, 50, 30], [20, 30, 60], [10, 20, 30], [10, 10, 10]]
fig = px.box(x=labels, y=value, width=500, height=400)
fig.show()
出力:

width および height 引数は、図形の幅と高さをピクセル単位で設定するために使用されます。color 引数を使用して各セルにデフォルトの色を指定し、その値をラベルに設定できます。
ボックスの向きは、orientation 引数と文字列 h を水平方向に、v を垂直方向に使用して設定できます。x_axis に log_x、y 軸に log_y を使用して軸を対数スケールに設定し、その値を true に設定できます。
notched 引数を使用してボックスの形状をノッチに設定し、その値を true に設定できます。title 引数を使用してグラフにタイトルを付けることができます。
facet_col と facet_row を使用して、個別のセルでサブプロットを作成し、それらの値を整数または文字列のリストに設定して、サブプロットのタイトルを設定できます。列間隔に facet_col_spacing を使用し、行間隔に facet_row_spacing を使用して、2つのサブプロット間の距離を設定できます。
以下のコードは、上記の引数を変更します。
import plotly.express as px
labels = ["A", "B", "C"]
value = [[10, 50, 30], [20, 30, 60], [10, 20, 30], [10, 10, 10]]
fig = px.box(
x=labels,
y=value,
width=700,
height=400,
color=labels,
notched=True,
title="Plotly Box Plot",
facet_col=[1, 2, "b"],
)
fig.show()
出力:

デフォルトでは、box() 関数は各セルに異なる色を与えますが、color および color_discrete_map 引数を使用して各セルの色を設定できます。color 引数内に各セルラベルを渡し、color_discrete_map 引数を使用して各ラベルに色を付けて、各セルの色を変更する必要があります。ラベルの色を定義しない場合、box() 関数は自動的にランダムな色をラベルに与えます。
以下のコードは、各セルの色を設定します。
import plotly.express as px
labels = ["A", "B", "C"]
value = [[10, 50, 30], [20, 30, 60], [10, 20, 30], [10, 10, 10]]
fig = px.box(
x=labels,
y=value,
width=700,
height=400,
color=labels,
color_discrete_map={
"A": "green",
"B": "cyan",
"C": "yellow",
},
)
fig.show()
出力:

color_discrete_sequence 引数を使用して、デフォルトのカラースケールまたはシーケンスを変更し、各セルの色を設定できます。引数の値は、有効な CSS カラーのリストである必要があります。Vivid、Light24、Dark2 などの Plotly の組み込みカラーシーケンスを使用できます。
以下のコードは、Dark2 カラーシーケンスを使用して円グラフの色を変更します。
import plotly.express as px
labels = ["A", "B", "C"]
value = [[10, 50, 30], [20, 30, 60], [10, 20, 30], [10, 10, 10]]
fig = px.box(
x=labels,
y=value,
width=700,
height=400,
color=labels,
color_discrete_sequence=px.colors.qualitative.Dark2,
)
fig.show()
出力:

コード内のカラーシーケンスを変更するには、カラーシーケンスの名前を Dark2 から Vivid に変更する必要があります。Plotly のカラーシーケンスの詳細については、このリンクにアクセスしてください。
fig.update_traces() 関数を使用して、bar() 関数のトレースを更新できます。fillcolor 引数を使用してボックスの塗りつぶしの色を変更し、その値を黄色などの色の名前に設定できます。opacity 引数を使用してボックスの不透明度を変更し、その値を 0 から 1 に設定できます。
legendgrouptitle_text 引数を使用して凡例のタイトルグループを設定し、その値を文字列に設定できます。
以下のコードは、fig.update_traces() 関数を使用して上記のトレースを変更します。
import plotly.express as px
labels = ["A", "B", "C"]
value = [[10, 50, 30], [20, 30, 60], [10, 20, 30], [10, 10, 10]]
fig = px.box(x=labels, y=value, width=700, height=400, color=labels)
fig.update_traces(fillcolor="yellow", opacity=0.8, legendgrouptitle_text="LegendTitle")
fig.show()
出力:

box() 関数トレースの詳細については、このリンクにアクセスしてください。
