Seaborn 막대 및 누적 막대 플롯

Manav Narula 2021년5월9일
Seaborn 막대 및 누적 막대 플롯

막대 그래프는 관찰 된 값을 직사각형 막대로 나타내는 데 사용됩니다. Python의 seaborn 모듈은seaborn.barplot()함수를 사용하여 막대 플롯을 만듭니다.

다른 날짜에 대한 제품 가격에 대한 간단한 막대 그래프를 만들려면 아래 코드를 참조하십시오.

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

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

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

seaborn 누적 막대 플롯 1

이 튜토리얼에서는 Seaborn에서 누적 막대 플롯을 만드는 방법을 배웁니다.

누적 막대 그래프에 대해 이야기 할 때 의미하는 것은 동일한 그래프에 두 개 이상의 관측치 세트가 있다는 것입니다. 이렇게하면 전체 그래프에 한 세트의 관측치가 두 번째 세트 위에 배치 된 스택 모양이됩니다.

이러한 누적 막대 그래프를 직접 생성 할 수있는 함수는 없지만 전통적인seaborn.barplot()방법을 사용하여 두 개의 개별 막대 그래프를 플로팅하고 둘 다 서로 위에 배치 할 수 있습니다.

다음 코드에서이 논리를 구현합니다.

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

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.barplot(x="Day", y="Price 1", data=df, color="red")

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

seaborn 누적 막대 그래프 2

위의 그래프에서 우리는 막대 그래프에 다른 날에 대한 두 상품의 가격을 표시했습니다.

원하는 경우 동일한 막대 그림에서 범주 형 값에 대한 관측 값 집합을 나타낼 수 있습니다. 최종 결과는 누적 된 모양이 아니지만 여러 막대에있는 동일한 그래프의 관찰을 나타냅니다.

다음 코드를 참조하십시오.

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

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.barplot(x="Day", y="Price", data=df, hue="Product")

seaborn 누적 막대 그래프 3

동일한 그래프에서 4 일에 걸쳐 2 개 제품의 가격을 표시 할 수있었습니다. x 및 y 축에 막대 그래프에 대해 원하는 값을 제공하고hue매개 변수를 사용하여 다른 범주에 대한 관측치를 그룹화하여 동일한 그래프에 다른 막대를 생성합니다. 이런 식으로 최종 출력은 훨씬 깨끗하고 모든 것이 하나의 기능으로 만 수행됩니다.

작가: 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