HOWTO · Seaborn

Seaborn 플롯 크기를 변경하는 방법

이 튜토리얼에서는 Python에서 Seaborn 플롯의 크기를 변경하는 방법을 보여줍니다.

이 페이지의 내용

데이터 과학과 시각화에서 유익하고 시각적으로 매력적인 차트를 만드는 것은 매우 중요합니다. 미적으로 보기 좋은 플롯을 만들기 위한 강력한 도구 중 하나가 Seaborn입니다. Seaborn은 Matplotlib 위에 구축된 Python 데이터 시각화 라이브러리입니다.

이 글에서는 height와 aspect 같은 내장 매개변수를 사용하는 방법부터 Matplotlib의 figure(), gcf(), subplots() 같은 함수를 사용하는 방법까지, Python에서 Seaborn 차트의 그림 크기를 설정하는 다양한 방법을 살펴봅니다.

seaborn.set() 함수를 사용하여 Python에서 Seaborn 차트 그림 크기 설정하기

처음으로 사용할 방법은 seaborn.set() 함수입니다. 이 함수를 사용하면 테마와 설정을 포함해 라이브러리 모양의 다양한 측면을 사용자 지정할 수 있습니다. 여기서는 Seaborn 플롯의 크기를 제어하는 데 이 함수를 사용하는 데 초점을 맞춥니다.

구문:

import seaborn as sns

sns.set(rc={"figure.figsize": (width, height)})

rc 매개변수는 사전(dictionary)을 받으며, 여기서 키워드 인수 'figure.figsize'와 그림의 원하는 너비와 높이를 담은 튜플 형태의 대응 값을 지정합니다. width와 height를 그림의 구체적인 크기로 바꾸세요.

seaborn.set()를 사용하여 Seaborn 그림 크기 설정하기 예제

기본 그림 크기:

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

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

sns.lineplot(data=df)
plt.title("Default Figure Size")
plt.show()

처음 코드 블록에서는 필요한 라이브러리를 가져오고, 샘플 데이터를 만들고, 그림 크기를 명시적으로 설정하지 않고 플롯을 생성합니다. 이는 기본 동작을 나타냅니다.

코드 출력:

Seaborn 그림 크기 - 출력

Seaborn 그림 크기를 설정한 후:

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

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

sns.set(rc={"figure.figsize": (15, 8)})
p = sns.lineplot(data=df)
plt.show()

이 수정된 코드 블록에서는 sns.set(rc={"figure.figsize": (15, 8)})를 도입하여 seaborn.set() 함수를 호출해 Seaborn 그림 크기를 지정합니다. rc 매개변수는 사전을 받으며, 이 경우 키워드 인수 "figure.figsize"를 너비 15인치, 높이 8인치라는 원하는 치수로 설정합니다.

코드 출력:

Seaborn 그림 크기 - 출력 1

출력 결과는 지정한 너비 15인치, 높이 8인치의 그림 크기로 그려진 선 플롯을 보여주며, 시각적 표현이 원하는 크기를 충족함을 보장합니다.

rcParams 함수를 사용하여 Python에서 Seaborn 차트 그림 크기 설정하기

seaborn.set() 함수 외에도 Seaborn 그림 크기를 설정하는 또 다른 방법은 matplotlib.pyplot 모듈의 rcParams 함수를 사용하는 것입니다. 이 두 번째 방법 역시 플롯 스타일을 유연하게 사용자 지정할 수 있게 해줍니다.

rcParams 함수는 그림 크기를 포함해 Matplotlib 동작의 다양한 측면을 구성하는 데 사용됩니다. 그림 크기를 변경하려면 rcParams 내의 "figure.figsize" 매개변수를 구체적으로 대상으로 삼아 원하는 치수를 튜플로 할당합니다.

구문:

from matplotlib import rcParams

rcParams["figure.figsize"] = (width, height)

width와 height를 그림에 원하는 구체적인 치수로 바꾸세요.

rcParams를 사용하여 Seaborn 그림 크기 설정하기 예제

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

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

rcParams["figure.figsize"] = 15, 8

p = sns.lineplot(data=df)
plt.show()

그림 크기를 설정하기 위해 rcParams["figure.figsize"] = 15, 8을 사용합니다. 이 코드 한 줄은 Matplotlib 런타임 구성 매개변수를 직접 수정하여 너비 15인치, 높이 8인치라는 원하는 크기를 지정합니다.

코드 출력:

Seaborn 그림 크기 - 출력 2

matplotlib.pyplot.figure() 함수를 사용하여 Python에서 Seaborn 차트 그림 크기 설정하기

사용할 수 있는 또 다른 간단한 방법은 새 그림 인스턴스를 만드는 데 사용되는 matplotlib.pyplot.figure() 함수입니다. 이 함수 내의 figsize라는 매개변수를 활용하면 그림 객체의 너비와 높이를 인치 단위로 지정할 수 있습니다.

구문:

import matplotlib.pyplot as plt

plt.figure(figsize=(width, height))

width와 height를 그림에 원하는 구체적인 치수로 바꾸세요. 그림 크기가 적절히 구성되도록 하려면 이 함수를 플롯을 만들기 전에 호출해야 합니다.

matplotlib.pyplot.figure()를 사용하여 Seaborn 그림 크기 설정하기 예제

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

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

# Set the size of the figure using matplotlib.pyplot.figure()
plt.figure(figsize=(15, 8))

# Create plot
p = sns.lineplot(data=df)
plt.show()

이 예제에서는 plt.figure(figsize=(15, 8))를 사용하며, 여기서 figsize는 그림의 너비와 높이를 나타내는 튜플로 지정됩니다. 이 방법은 뒤에 오는 플롯이 지정한 치수를 따르도록 보장합니다.

코드 출력:

Seaborn 그림 크기 - 출력 3

지정한 너비 15인치, 높이 8인치의 Seaborn 그림 크기로 선 플롯을 성공적으로 만들었습니다.

matplotlib.pyplot.gcf() 함수를 사용하여 Python에서 Seaborn 차트 그림 크기 설정하기

플롯 크기를 세밀하게 제어하기 위해 matplotlib.pyplot.gcf() 함수와 set_size_inches()를 함께 사용하면 다용도 솔루션을 얻을 수 있습니다.

matplotlib.pyplot.gcf() 함수는 “현재 그림 가져오기(get current figure)“를 의미하며, 현재 그림 인스턴스를 가져옵니다. set_size_inches()와 함께 사용하면 그림 크기를 동적으로 조정할 수 있습니다.

구문:

import matplotlib.pyplot as plt

current_fig = plt.gcf()

current_fig.set_size_inches(width, height)

width와 height를 원하는 치수로 바꾸세요. 이 함수는 이미 플롯을 만든 뒤 그 크기를 수정하고 싶을 때 특히 유용합니다.

matplotlib.pyplot.gcf()를 사용하여 Seaborn 그림 크기 설정하기 예제

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

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

p = sns.lineplot(data=df)

plt.gcf().set_size_inches(15, 8)
plt.show()

이전 예제들과 달리, 여기서는 플롯을 만든 후에 plt.gcf().set_size_inches(15, 8)를 사용하여 그림 크기를 설정합니다. plt.gcf()는 현재 그림 인스턴스를 가져오고, 이어서 set_size_inches()를 적용해 그림을 너비 15인치, 높이 8인치로 동적으로 조정합니다.

코드 출력:

Seaborn 그림 크기 - 출력 4

보시다시피, 출력 결과는 지정한 너비 15인치, 높이 8인치의 그림 크기로 그려진 선 플롯을 보여줍니다.

height와 aspect 매개변수를 사용하여 Python에서 Seaborn 차트 그림 크기 설정하기

Seaborn은 lmplot, catplot, jointplot 같은 특정 플롯 유형에 대해 height와 aspect 같은 내장 매개변수를 제공함으로써 그림 크기 조정 과정을 단순화합니다. 이를 통해 추가 함수 호출 없이 플롯되는 그림의 크기를 직접 제어할 수 있습니다.

Seaborn의 height 매개변수는 전체 그림의 높이를 나타내고, aspect 매개변수는 플롯의 종횡비(aspect ratio)를 제어합니다.

height와 aspect 매개변수를 사용하여 Seaborn 그림 크기 설정하기 예제

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

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

# create plot
p = sns.catplot(data=df, height=8, aspect=15 / 8, kind="bar")
plt.show()

이 예제에서는 그림 크기를 설정하기 위해 height와 aspect 매개변수를 본질적으로 지원하는 sns.catplot() 함수를 사용합니다. 이 경우 height=8은 그림 높이를 8인치로 설정하고, aspect=15 / 8은 너비가 15인치가 되도록 비율을 제어합니다.

코드 출력:

Seaborn 그림 크기 - 출력 5

이 방법은 내장 매개변수가 함께 제공되는 Seaborn 플롯 유형으로 작업할 때 특히 편리합니다.

matplotlib.pyplot.subplots() 함수를 사용하여 Python에서 Seaborn 차트 그림 크기 설정하기

matplotlib.pyplot.subplots() 함수는 Seaborn 플롯에서 그림 크기를 설정하는 다용도 방법을 제공합니다. 이 함수를 사용하여 그림과 축(axes) 객체를 만들면 플롯을 생성하기 전에 치수를 쉽게 사용자 지정할 수 있습니다.

matplotlib.pyplot.subplots() 함수는 그림과 서브플롯 집합을 만드는 데 사용됩니다. 이 함수 내의 figsize 매개변수를 사용하면 전체 그림의 너비와 높이를 인치 단위로 지정할 수 있으며, 개별 서브플롯은 Seaborn 축 객체를 통해 접근하여 특정 플롯을 할당할 수 있습니다.

이 방법은 여러 서브플롯이 관여할 때 특히 유용하며, 전체 그림 크기를 세밀하게 제어할 수 있게 해줍니다.

matplotlib.pyplot.subplots()를 사용하여 Seaborn 그림 크기 설정하기 예제

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

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

fig, ax = plt.subplots(figsize=(15, 8))

p = sns.lineplot(data=df, ax=ax)
plt.show()

이 예제에서 핵심 단계는 plt.subplots(figsize=(15, 8))를 사용하여 너비 15인치, 높이 8인치로 지정한 크기의 그림과 축을 만드는 것입니다. Seaborn 그림을 그릴 때는 ax 매개변수를 matplotlib.pyplot.subplots()가 반환한 축 배열과 같아지도록 설정합니다.

코드 출력:

Seaborn 그림 크기 - 출력 6

이렇게 해서 지정한 너비 15인치, 높이 8인치의 Seaborn 그림 플롯 크기로 선 플롯을 성공적으로 생성했습니다.

결론

이 글에서는 Python에서 Seaborn 차트 그림 크기를 설정하는 다양한 방법을 몇 가지 예제와 함께 종합적으로 살펴보았습니다. Seaborn의 height와 aspect 같은 내장 매개변수, matplotlib.pyplot.figure() 함수, matplotlib.pyplot.gcf() 함수, 또는 matplotlib.pyplot.subplots() 중 무엇을 사용하든, 각 방법은 플롯의 시각적 표현을 맞춤화하는 고유한 접근법을 제공합니다.

이러한 기법을 익히면 시각적으로 임팩트 있는 Seaborn 시각화를 통해 복잡한 정보를 전달하는 능력이 향상되며, 이는 데이터 과학의 초석입니다.

다음 단계로 고급 통계 시각화를 탐구하는 것은 흥미로운 방향이 될 수 있습니다. 구체적으로 상관관계 분석을 위한 Seaborn 히트맵 주제를 깊이 파고들면 데이터 시각화 기술을 한층 높일 수 있습니다.