Seaborn プロットの逆対数スケール

Manav Narula 2021年11月20日
Seaborn プロットの逆対数スケール

Python には、対数値と指数値を処理するためのさまざまな関数が備わっています。numpy および math モジュールから利用できる log() および exp() 関数を使用して、このような値を計算します。

例えば、

print(np.log(50))
print(np.exp(3.912023005428146))

出力:

3.912023005428146
49.99999999999999

上記の 2つの関数の多くの変更により、異なる基数などで対数を計算できます。指数値は、逆対数または逆対数の値と見なされます。

グラフやプロットでもこのような値を扱うことができます。matplotlib モジュールに基づく seaborn モジュールは、視覚化の目的で使用され、さまざまなタイプのグラフを作成できます。さまざまな関数を使用して、要件に応じて最終的な数値を微調整できます。

このチュートリアルでは、Python で Seaborn のプロットのログ値を逆にする方法を学習します。

この例では、log 関数を使用して必要な値を計算し、seaborn モジュールの violinplot() 関数を使用してそれらをプロットします。

以下のコードを参照してください。

import seaborn as sns
import numpy as np

lst = [1, 5, 8, 9, 5, 2, 5, 6, 9]

pl = sns.violinplot(y=np.log(lst))

Seaborn の両対数プロット

set_yticklabels() および set_xticklabels() 関数を使用して、両方の軸のラベルティック値をカスタマイズできます。上記の関数と逆ログ関数を使用して、目盛りラベルの値を設定します。

例えば、

import seaborn as sns
import numpy as np

lst = [1, 5, 8, 9, 5, 2, 5, 6, 9]

pl = sns.violinplot(y=np.log(lst))
pl.set_yticklabels([f"{np.expm1(l):.2f}" for l in pl.get_yticks()])

Seaborn のプロットの逆対数スケール

get_yticks() 関数はデフォルトのラベルを返し、exp() 関数を使用してそれらの逆対数を計算します。Python の文字列フォーマットに使用される fstring を使用して、最終結果を小数点以下 2 桁のみにフォーマットします。

このように、リストの要素の対数値を計算し、逆対数関数を使用して目盛りラベルに元の値を記載することにより、バイオリン図を作成しました。

例では、数学モジュールではなく、numpy モジュールの関数を使用していることに注意してください。これは、numpy の log() 関数と exp() 関数がリストまたは配列の必要な値を直接計算できるためです。

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Seaborn Tick