Seaborn Swarmplot

Manav Narula 2021년7월16일
Seaborn Swarmplot

산점도는 가장 기본적이고 유용한 그래프 중 하나입니다. Python의 seaborn 모듈은 이러한 그래프를 한 단계 더 발전시켜 범주 형 값을 나타내는 데 사용할 수 있습니다.

스웜 플롯은 범주 형 값을 나타내는 데 사용되는 산점도 유형입니다. 스트립 플롯과 매우 유사하지만 점이 겹치는 것을 방지합니다. seaborn.swarmplot()을 사용하여 이러한 그래프를 만들 수 있습니다.

표본 크기가 큰 경우이 유형의 그래프를 사용하지 않는 것이 좋습니다.

swarmplot()함수를 사용하여 다음 코드에서 범주 값에 대한 그래프를 생성합니다.

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

df = pd.DataFrame(
    {
        "Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
        "Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
        "Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
        "Product": [
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
        ],
    }
)

sns.swarmplot(data=df, y="Price", x="Quantity")

범주 형 데이터에 대한 seaborn swarmplot

위의 예에서hue매개 변수를swarmplot()함수에 추가하고 두 개의 다른 제품에 대한 카테고리를 분리 할 수 ​​있습니다. dodge인수를 사용하고 True로 설정하여 두 제품을 분할 할 수 있습니다.

또한swarmplot()함수와 함께 다른 인수도 사용할 수 있습니다. 포인트의 크기와 색상은sizecolor인수를 사용하여 변경할 수 있습니다. palette매개 변수를 사용하여 다른 카테고리에 사용되는 색상 조합을 변경할 수 있습니다. linewidth인수는 지정된 너비의 포인트에 테두리를 추가합니다. 플로팅 된 카테고리의 순서는order매개 변수를 사용하여 제어 할 수 있습니다.

다음 예제에서 위의 인수를 사용하려고합니다.

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

df = pd.DataFrame(
    {
        "Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
        "Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
        "Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
        "Product": [
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
        ],
    }
)

sns.swarmplot(
    data=df,
    y="Price",
    x="Quantity",
    hue="Product",
    dodge=True,
    linewidth=2.5,
    palette="Set2",
    size=10,
)

색조 및 기타 인수가있는 seaborn swarmplot

swarmplot()은 상자 또는 바이올린 플롯에 대한 좋은 칭찬으로도 사용할 수 있습니다. 데이터 분포에 대한 좋은 아이디어를 제공합니다.

다음 코드를 사용하여 swarm 플롯 위에 상자 플롯을 추가 할 수 있습니다.

import random
import numpy as np
import seaborn as sns

n = random.sample(range(0, 50), 30)
arr = np.array(n)
sns.boxplot(n)
sns.swarmplot(n, color="red")

swarmplot에 대한 seaborn 상자 그림

catplot()함수는 이러한 떼 플롯을 생성 할 수도 있습니다. 이를 위해catplot()함수의kind매개 변수 값을swarm으로 지정해야합니다.

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