グラフを書く際に、片軸の取りうる値が急激に増えているようなグラフだと 値がかたまってしまい見づらいグラフになってしまうと思います。そのようなときに、片方の軸で対数を取る「片対数グラフ」を描けることになると思いますが、今回の記事では 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 の一般的なグラフでも描画する範囲を指定することができるように、対数グラフでも設定することができます!
ただ、その設定が少し特殊なのでそれについて説明していきます!
サンプルコード
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()
コメント