Plotly バブルチャート
このチュートリアルでは、Plotly の scatter()
関数を使用してバブルチャートを作成する方法について説明します。
Python でプロットバブルチャート
散布図は、バブルチャートとも呼ばれ、データポイントを円またはバブルとしてグラフに表示します。plotly.express
の scatter()
関数を使用して、バブルまたは散布図を作成できます。
散布図またはバブルチャートを作成するには、scatter()
関数内で x 軸と y 軸の値を渡す必要があります。軸の値が 1つだけ指定されている場合、関数は値のインデックスを 2 番目の軸の値として使用します。
たとえば、ランダムなデータを使用してバブルチャートを作成しましょう。以下のコードを参照してください。
import plotly.express as px
values = [2, 5, 7, 8, 3, 6]
fig = px.scatter(y=values, width=500, height=400)
fig.show()
出力:
width
および height
引数は、上の図の幅と高さをピクセル単位で設定するために使用されます。データフレームを使用してバブルチャートを作成することもできます。
データフレームの場合、data_frame
引数を使用して、scatter()
関数内にデータを渡すことができます。color
引数を使用して、各バブルにランダムな色を付けることができます。
scatter()
関数は、カラーシーケンスを使用して各バブルの色を設定します。size
引数を使用して各バブルのサイズを設定し、その値を整数のリストに設定できます。hover_name
引数を使用して各バブルのホバータイトルを設定し、その値を文字列のリストに設定できます。
text
引数を使用して各バブル内にテキストを追加し、その値を文字列のリストに設定することもできます。facet_col
引数を使用して各バブルを異なるプロットに分割し、各バブルを異なるプロットに配置できます。
orientation
引数を使用してプロットの方向を設定し、その値を水平方向の場合は h
に、垂直方向の場合は v
に設定できます。たとえば、上記のプロパティを変更してみましょう。以下のコードを参照してください。
import plotly.express as px
values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
y=values,
x=labels,
width=500,
height=400,
color=labels,
size=[5, 10, 15],
hover_name=["B1", "B2", "B3"],
text=["1", "2", "3"],
facet_col=labels,
)
fig.show()
出力:
x 軸エラーに error_x
を使用し、y 軸エラーに error_y
を使用して、各バブルにエラーバーを追加することもできます。
color_discrete_sequence
を使用してデフォルトのカラーシーケンスを変更し、plotly.express.color.qualitative
属性を使用してその値を Dark24
や Light24
のような Plotly でサポートされるカラーシーケンスに設定できます。たとえば、上記のバブルチャートのカラーシーケンスを変更してみましょう。
以下のコードを参照してください。
import plotly.express as px
values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
y=values,
x=labels,
width=500,
height=400,
color=labels,
size=[5, 10, 15],
hover_name=["B1", "B2", "B3"],
text=["1", "2", "3"],
error_y=[1, 2, 1],
color_discrete_sequence=px.colors.qualitative.Dark24,
)
fig.show()
出力:
カラーシーケンスを変更するには、上記のコードのカラーシーケンス名を Dark24
から Light24
のように変更する必要があります。各バブルにカラーシーケンスではなくカラーを指定する場合は、color_discrete_map
引数を使用してカラーシーケンスをオーバーライドできます。
Plotly カラーの詳細については、このリンクを確認してください。たとえば、上のプロットにある最初の 2つの泡の色を変更してみましょう。
以下のコードを参照してください。
import plotly.express as px
values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
y=values,
x=labels,
width=500,
height=400,
color=labels,
size=[5, 10, 15],
hover_name=["B1", "B2", "B3"],
text=["1", "2", "3"],
error_y=[1, 2, 1],
color_discrete_map={"a": "red", "b": "green"},
)
fig.show()
出力:
最初の 2 色のみを変更し、残りの色はデフォルトのカラーシーケンスから変更されます。opacity
引数を使用してバブルの不透明度を設定し、その値を 0
から 1
に設定できます。
log_x
および log_y
引数を使用し、その値を true に設定して、軸を対数スケールに変更することもできます。title
引数を使用して、図のタイトルを設定できます。
marginal_x
と marginal_y
を使用して、バブルグラフの上に分布グラフを描画し、ポイントの分布を表示できます。たとえば、上記のプロパティを変更してみましょう。
以下のコードを参照してください。
import plotly.express as px
values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
y=values,
x=labels,
width=500,
height=400,
color=labels,
size=[5, 10, 15],
hover_name=["B1", "B2", "B3"],
text=["1", "2", "3"],
error_y=[1, 2, 1],
color_discrete_map={"a": "red", "b": "green"},
title="Bubble Chart",
opacity=0.7,
marginal_x="histogram",
)
fig.show()
出力:
fig.update_traces()
関数を使用して scatter()
関数トレースを使用して、バブルチャートの他の多くのプロパティを変更することもできます。showlegend
引数を使用してその値を false に設定すると、凡例を非表示にできます。
エラーバーの色を変更できます。これは、デフォルトでは、error_y_color
引数を使用してバブルの色と同じです。error_y_thickness
引数を使用して、エラーバーの線幅を変更できます。
たとえば、上記のトレースを変更してみましょう。以下のコードを参照してください。
import plotly.express as px
values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
y=values,
x=labels,
width=500,
height=400,
color=labels,
size=[5, 10, 15],
hover_name=["B1", "B2", "B3"],
text=["1", "2", "3"],
error_y=[1, 2, 1],
color_discrete_map={"a": "red", "b": "green"},
title="Bubble Chart",
opacity=0.7,
marginal_x="histogram",
)
fig.update_traces(showlegend=False, error_y_color="red", error_y_thickness=5)
fig.show()
出力:
scatter()
関数トレースの詳細については、このリンクを確認してください。