Seaborn プロットの軸ティックラベルを回転させる

Manav Narula 2023年1月30日
  1. set_xticklabels() 関数を使用して、SeabornAxes のラベルを回転させる
  2. xticks() 関数を使用して、SeabornAxes のラベルを回転させる
  3. setp() 関数を使用して、SeabornAxes のラベルを回転させる
Seaborn プロットの軸ティックラベルを回転させる

Seaborn は、最終的な図のために多くのカスタマイズを提供します。そのような小さいながらも不可欠なカスタマイズの 1つは、両方の軸の目盛りラベルを制御できることです。

たとえば、次のグラフの問題に注意してください。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Date": [
            "01012019",
            "01022019",
            "01032019",
            "01042019",
            "01052019",
            "01062019",
            "01072019",
            "01082019",
        ],
        "Price": [77, 76, 68, 70, 78, 79, 74, 75],
    }
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")

plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)

Seaborn の回転ラベル 1

上記のコードでは、製品の価格の時系列データのグラフをプロットしました。ご覧のとおり、日付全体が x 軸にプロットされています。このため、すべてが重なっていて読みにくいです。

このような状況では、軸の目盛りラベルを回転させることができます。

このチュートリアルでは、Seaborn のプロットでそのようなダニのラベルを回転させる方法を学習します。

set_xticklabels() 関数を使用して、SeabornAxes のラベルを回転させる

set_xticklabels() 関数は、x 軸の目盛りラベルの値を設定します。これを使用してラベルを回転させることができます。ただし、この関数は、デフォルトのラベルを返し、rotation パラメーターを使用してそれらを回転させる get_xticklabels() 関数を使用するために、いくつかのラベル値を必要とします。

次のコードは、その使用法を示しています。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Date": [
            "01012019",
            "01022019",
            "01032019",
            "01042019",
            "01052019",
            "01062019",
            "01072019",
            "01082019",
        ],
        "Price": [77, 76, 68, 70, 78, 79, 74, 75],
    }
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")

plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)
ax.set_xticklabels(ax.get_xticklabels(), rotation=30)

Seaborn の回転ラベル 2

xticks() 関数を使用して、SeabornAxes のラベルを回転させる

matplotlib.pyplot.xticks() 関数の rotation パラメーターもこれを実現できます。ラベルを渡す必要はなく、この関数でパラメーターを直接使用できます。

例えば、

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Date": [
            "01012019",
            "01022019",
            "01032019",
            "01042019",
            "01052019",
            "01062019",
            "01072019",
            "01082019",
        ],
        "Price": [77, 76, 68, 70, 78, 79, 74, 75],
    }
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")

plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)
plt.xticks(rotation=45)

Seaborn の回転ラベル 3

setp() 関数を使用して、SeabornAxes のラベルを回転させる

ほとんどの Seaborn のプロットは matplotlib 軸オブジェクトを返すため、このライブラリの setp() 関数を使用できます。xtick() 関数を使用して目盛りラベルの値を取得し、setp() 関数の rotation パラメーターを使用してそれらを回転させます。

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

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Date": [
            "01012019",
            "01022019",
            "01032019",
            "01042019",
            "01052019",
            "01062019",
            "01072019",
            "01082019",
        ],
        "Price": [77, 76, 68, 70, 78, 79, 74, 75],
    }
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")

plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)
locs, labels = plt.xticks()
plt.setp(labels, rotation=45)

Seaborn の回転ラベル 4

著者: 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 Axis

関連記事 - Seaborn Label