Plotly : 対数 グラフの作り方

plotly使い方

 グラフを書く際に、片軸の取りうる値が急激に増えているようなグラフだと 値がかたまってしまい見づらいグラフになってしまうと思います。そのようなときに、片方の軸で対数を取る「片対数グラフ」を描けることになると思いますが、今回の記事では Plotlyで片対数グラフ を描ける方法についてまとめていきます!
(同じ方法で、両対数グラフも描けるようになりますよ!)

スポンサーリンク

対数 グラフ

 まず、対数を用いない場合 と 用いる場合を比較してみたいと思います!
今回の記事で扱うデータは、すべて 2007年の国別の平均寿命 のデータです (縦軸 : 平均寿命, 横軸 : 国の人口)

対数を用いない場合

対数を用いる場合

 横軸が「国の人口」と平均寿命と比べて取りうる値が大きいので、片対数グラフとするだけで 値の違いが見やすくなりますね!

対数グラフの作り方

 ここからは、実際にどのように対数グラフを作っていくのか?についてまとめていきます!
結論としては、下記の1行を追加するだけです!

fig.update_xaxes(type="log")

 x軸 の 軸のとり方(type)を log にするという設定です!
この update_xaxes を update_yaxes とすることで y軸方向で対数をとったグラフにすることもできます!

サンプルコード

プログラムの全文はこのような形です

import plotly.graph_objects as go
import plotly.express as px
df = px.data.gapminder()
df = df[df['year']==2007]

fig = go.Figure()
fig.add_trace(go.Scatter(mode="markers", x=df["pop"], y=df["lifeExp"] ))

fig.update_xaxes(type="log")
fig.show()

スポンサーリンク

対数グラフの作り方 (発展編)

 Plotly の一般的なグラフでも描画する範囲を指定することができるように、対数グラフでも設定することができます!
ただ、その設定が少し特殊なのでそれについて説明していきます!

一般的な範囲指定

yaxes(y軸) を 0 ~ 100 の範囲で表示させたいときはこのように設定します!

fig.update_yaxes(range=[0,100])

対数グラフの範囲指定

上と同じように 考えると xaxes(x軸) を 0 ~ 10 の範囲で表示させたいと読み取れますが、 type = "log"のときは取りうる範囲が 10の何乗から何乗までか?というように範囲指定を行います!

そのため、下の例では 10^0 ~ 10^10 まで を x軸の取りうる範囲として取る といった設定になります!

fig.update_xaxes(type="log", range=[0,10]) 

10^0 = 1
10^10 = 10B

サンプルコード

import plotly.graph_objects as go
import plotly.express as px
df = px.data.gapminder()
df = df[df['year']==2007]


fig = go.Figure()

fig.add_trace(go.Scatter(mode="markers", x=df["pop"], y=df["lifeExp"] ))

fig.update_xaxes(type="log", range=[0,10]) 
fig.update_yaxes(range=[0,100])
fig.show()

コメント

タイトルとURLをコピーしました