Seaborn ラインプロット

Manav Narula 2022年6月3日
Seaborn ラインプロット

Seaborn は、見事なプロットを作成するために Python で利用できる非常に効率的な視覚化ツールです。これは、matplotlib モジュールを使用し、それに基づいています。

ラインプロットは、このモジュールの最も基本的なプロットの 1つです。これは通常、時間に関して何かを追跡するために使用されます。また、一方の軸に継続的な観測を、もう一方の軸にカテゴリ値を設定することもできます。

このチュートリアルでは、Python の seaborn モジュールを使用してラインプロットを作成する方法を学習します。

seaborn.lineplot() 関数を使用してラインプロットを作成します。次のコードは、この関数を使用して単純なラインプロットを作成する方法を示しています。

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

df = pd.DataFrame(
    {"Price 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day": [1, 2, 3, 4, 5, 6, 7, 8]}
)

s1 = sns.lineplot(x="Day", y="Price 1", data=df, color="red")

Seaborn ラインプロット 1

さまざまな引数を使用して、プロットをカスタマイズできます。たとえば、color 引数はプロットの線の色を変更できます。

stylehue は、変数をグループ化し、変数に関するバリエーションを表示する必要がある場合に頻繁に使用されます。これは、カテゴリ値を 1つのプロットにプロットし、1つの図に複数の線をプロットできるようにする場合に役立ちます。

例えば、

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

df = pd.DataFrame(
    {
        "Price": [7, 1, 5, 6, 3, 10, 5, 8],
        "Product": ["C1", "C2", "C1", "C2", "C1", "C2", "C1", "C2"],
        "Day": [1, 1, 2, 2, 3, 3, 4, 4],
    }
)

s = sns.lineplot(x="Day", y="Price", data=df, hue="Product")

Seaborn ラインプロット 2

複数のラインプロットを重ねることもできます。この方法では、カテゴリに関係なく、同じプロットに複数の観測値をプロットすることもできます。

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

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

df = pd.DataFrame(
    {
        "Price 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Price 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day": [1, 2, 3, 4, 5, 6, 7, 8],
    }
)

s1 = sns.lineplot(x="Day", y="Price 1", data=df, color="red")

s2 = sns.lineplot(x="Day", y="Price 2", data=df, color="blue")

plt.legend(labels=["Price1", "Price2"])

Seaborn ラインプロット 3

複数の線で作業している場合は、両方の線を区別するのに役立つ凡例をプロットに追加することをお勧めします。上記のコードの matplotlib.pyplot.legend() 関数は、ラベルも指定できる凡例を明示的に追加するために使用されます。

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