Plotly バーチャート
このチュートリアルでは、Plotly の bar()
関数を使用した棒グラフの作成について説明します。
Plotly の棒グラフ
棒グラフは、高さがそれが表す値に等しい長方形の棒としてデータを表示します。Plotly の bar()
関数を使用して棒グラフを作成できます。
棒グラフには 2つの軸があります。1つの軸はデータを長方形のバーとして表し、もう 1つの軸はラベルです。軸を入れ替えることで、縦棒グラフを横にできます。
棒グラフを作成するには、bar()
関数内にデータとラベルを渡す必要があります。bar()
関数内にデータフレームまたは配列を渡すこともできます。
ランダムデータの棒グラフを作成しましょう。以下のコードを参照してください。
import plotly.express as px
labels = ["One", "Two", "Three"]
value = [10, 50, 100]
fig = px.bar(x=labels, y=value, height=400, width=500)
fig.show()
出力:
width
および height
引数は、図形の幅と高さをピクセル単位で設定するために使用されます。color
引数と入力データと同じ長さの数値の配列を使用して、各セルに異なる色を与えることができます。
text
引数と各セルのテキストを含む文字列のリストを使用して、各セル内にテキストを配置できます。base
引数と各セルベースの位置を含むリストを使用して、各セルベースの位置を設定できます。
x 軸に error_x
引数を使用し、y 軸に error_y
引数を使用して、各セルにエラーバーを追加できます。引数の値は、各セルの数値エラー値を含むリストである必要があります。
opacity
引数を使用して、各セルの不透明度を 0 から 1 に設定できます。orientation
引数を使用してセルの方向を水平または垂直に設定し、垂直の場合は v
に、水平の場合は h
に設定できます。
x 軸に log_x
引数、y 軸に log_y
引数を使用して各軸を対数スケールに設定し、その値を true に設定できます。title()
引数とタイトルのテキストを含む文字列を使用して、図のタイトルを設定することもできます。
上記の引数を変更してみましょう。以下のコードを参照してください。
import plotly.express as px
labels = ["One", "Two", "Three"]
value = [10, 50, 100]
fig = px.bar(
x=labels,
y=value,
height=400,
width=500,
color=[1, 5, 10],
text=["a", "b", "c"],
base=[0, 15, 50],
error_y=[5, 10, 15],
opacity=0.8,
orientation="v",
title="plotly bar plot",
)
fig.show()
出力:
デフォルトでは、bar()
関数は各セルに異なる色を与えますが、color
および color_discrete_map
引数を使用して各セルの色を設定できます。各セルの色を変更するには、color 引数内に各セルラベルを渡し、color_discrete_map
引数を使用して各ラベルに色を付ける必要があります。
ラベルの色を定義しない場合、bar()
関数は自動的にランダムな色をラベルに与えます。各セルの色を設定しましょう。
import plotly.express as px
labels = ["A", "B", "C"]
value = [10, 50, 100]
fig = px.bar(
x=labels,
y=value,
height=400,
width=500,
color=labels,
color_discrete_map={
"A": "green",
"B": "cyan",
"C": "yellow",
},
)
fig.show()
出力:
color_continuous_scale
引数を使用して、デフォルトのカラースケールまたはシーケンスを変更し、各セルの色を設定することもできます。引数の値は、有効な CSS カラーのリストである必要があります。RdBu
、Inferno
、Jet
、Hot
、Rainbow
、Sunset
のような Plotly の組み込みカラーシーケンスを使用できます。
Rainbow
カラーシーケンスを使用して円グラフの色を変更してみましょう。以下のコードを参照してください。
import plotly.express as px
labels = ["A", "B", "C"]
value = [10, 50, 100]
fig = px.bar(
x=labels,
y=value,
height=400,
width=500,
color=value,
color_continuous_scale=px.colors.sequential.Rainbow,
)
fig.show()
出力:
コード内のカラーシーケンスを変更するには、カラーシーケンスの名前を Rainbow
から Sunset
に変更する必要があります。Plotly のカラーシーケンスの詳細については、このリンクをクリックしてください。
fig.update_traces()
関数を使用して、bar()
関数のトレースを更新することもできます。text
引数を使用して各セル内に表示されるテキストを設定し、textposition
引数を使用してテキストの位置を設定できます。サポートされているテキストの位置は、outside
、inside
、auto
、および none
です。
textfont_size
引数を使用してテキストのフォントサイズを変更し、textangle
引数を使用してテキストの角度を変更し、textfont_color
引数を使用してテキストの色を変更できます。マーカー引数を使用して、線幅や色などのマーカープロパティを変更できます。
各セルにランダムなテキストを追加し、各テキストの色、角度、フォントサイズ、各セルの周囲の線を指定して、その色と幅を設定しましょう。
import plotly.express as px
labels = ["A", "B", "C"]
value = [10, 50, 80]
fig = px.bar(
x=labels,
y=value,
height=400,
width=500,
color=value,
color_continuous_scale=px.colors.sequential.Rainbow,
)
fig.update_traces(
text=["First", "Second", "Third"],
textposition="outside",
textfont_size=16,
textangle=90,
textfont_color="Red",
marker=dict(line=dict(color="green", width=3)),
)
fig.show()
出力:
bar()
関数トレースの詳細については、このリンクをクリックしてください。