Plotly 箱ひげ図

Ammar Ali 2022年4月1日
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()

出力:

Plotly ボックスプロット

width および height 引数は、図形の幅と高さをピクセル単位で設定するために使用されます。color 引数を使用して各セルにデフォルトの色を指定し、その値をラベルに設定できます。

ボックスの向きは、orientation 引数と文字列 h を水平方向に、v を垂直方向に使用して設定できます。x_axis に log_x、y 軸に log_y を使用して軸を対数スケールに設定し、その値を true に設定できます。

notched 引数を使用してボックスの形状をノッチに設定し、その値を true に設定できます。title 引数を使用してグラフにタイトルを付けることができます。

facet_colfacet_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 カラーのリストである必要があります。VividLight24Dark2 などの 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() 関数トレースの詳細については、このリンクにアクセスしてください。

著者: 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