HOWTO · Seaborn

Seaborn 플롯의 배경색 설정

이 튜토리얼에서는 Python에서 Seaborn 플롯의 배경색을 설정하는 방법을 설명합니다. set_style, set_palette, figure 배경 직접 설정 등 플롯을 사용자 지정하는 다양한 방법을 배웁니다. 멋진 배경으로 데이터 시각화를 향상하고 인사이트를 돋보이게 하세요. 데이터 스토리를 효과적으로 전달하는 일관되고 시각적으로 매력적인 그래픽을 만드는 기술을 살펴봅니다.

이 페이지의 내용

Seaborn 플롯의 배경색을 정확히 지정하려면 Matplotlib의 axes.facecolor와 figure.facecolor 설정을 seaborn.set()에 전달합니다. axes 설정은 플롯 영역의 색을 바꾸고, figure 설정은 그 주위의 캔버스 색을 바꿉니다. 배경과 격자, 눈금 스타일을 함께 빠르게 지정하려면 seaborn.set_style()로 프리셋을 선택하세요. 특정 색이 필요하면 정확한 색상 지정 방식을, 프리셋의 조합이 플롯에 잘 맞으면 프리셋을 사용하면 됩니다.

Seaborn과 Matplotlib으로 배경색을 정확히 지정하기

변경하려는 Matplotlib 설정을 rc 딕셔너리에 담아 seaborn.set()에 전달합니다. 색상 이름과 16진수 문자열을 모두 사용할 수 있습니다. 다음 예제는 플롯 영역을 옅은 파란색으로, figure 캔버스를 거의 흰색으로 설정한 뒤 그림을 저장합니다.

이 예제를 실행하세요:

import matplotlib.pyplot as plt
import seaborn as sns

sns.set(rc={
    "axes.facecolor": "#EAF2F8",
    "figure.facecolor": "#F7F9FC",
})

fig, ax = plt.subplots()
sns.scatterplot(x=[1, 2, 3], y=[2, 4, 3], ax=ax)
fig.savefig("seaborn-background.png", dpi=150, bbox_inches="tight")

색상 값을 lightblue 같은 색상 이름이나 다른 16진수 색상으로 바꿔 보세요. 이 설정은 호출 이후에 생성되는 플롯에 적용됩니다. 특정 axes나 figure 하나에만 적용하려면 아래 설명처럼 해당 객체의 면 색상을 직접 지정하세요.

Seaborn 스타일로 배경 선택하기

seaborn.set_style()은 여러 시각적 속성을 함께 제어하는 프리셋을 선택합니다. 사용할 수 있는 스타일은 darkgrid, whitegrid, dark, white, ticks입니다. 예를 들어 sns.set_style("whitegrid")는 밝은 배경과 격자선을 axes에 적용하고, sns.set_style("dark")는 격자선 없이 어두운 플롯 영역을 사용합니다. 스타일은 배경 외의 요소도 바꾸므로 격자와 눈금이 데이터에 잘 맞는지 확인해 선택하세요.

팔레트는 데이터 계열에 적용할 색을 정하고, context는 레이블과 선의 크기 같은 표시 배율을 조정합니다. sns.set_palette("deep")와 sns.set_context("notebook")을 사용하면 플롯의 표시 요소와 텍스트를 스타일에 맞출 수 있지만, 둘 다 배경색을 설정하지는 않습니다. 스타일, 팔레트, context, rc 설정을 한 번에 지정하려면 sns.set()을 사용할 수 있습니다.

Figure와 axes의 배경을 직접 설정하기

색상을 특정 figure 하나나 플롯 영역 하나에만 적용하려면 Matplotlib 객체를 사용하세요. fig, ax = plt.subplots()를 호출한 뒤 fig.patch.set_facecolor("#F7F9FC")를 사용하면 axes 주변의 여백을 포함한 figure 캔버스 전체의 색이 바뀝니다. ax.set_facecolor("#EAF2F8")는 해당 axes의 플롯 영역만 바꿉니다. 여러 플롯이 있는 figure에서 axes마다 다른 배경색을 적용할 때 유용하며, 색을 따로 지정할 axes마다 set_facecolor()를 호출하면 됩니다.

Seaborn을 통해 전달하는 figure.facecolor와 axes.facecolor 값은 이후에 생성되는 figure와 axes의 기본값이 됩니다. 직접 설정하는 메서드는 이미 만든 특정 객체에 적용되므로 적용 범위가 분명하고, 이후 플롯의 설정을 바꾸지 않습니다.

플롯 스타일을 조정하고 figure를 저장한 뒤 가독성 확인하기

위 예제는 정확히 지정한 배경색을 Seaborn 산점도에 적용하고 fig.savefig()로 저장합니다. 플롯을 만들고 색을 지정한 다음 figure의 저장 메서드를 호출하세요. 대신 plt.savefig()를 사용한다면 저장하려는 figure가 현재 figure인 동안 호출해야 합니다. 저장하기 전에 플롯을 화면에 표시할 필요는 없습니다.

배경색과 데이터 마커, 레이블, 격자선 사이에 충분한 대비를 유지하세요. 어두운 배경에는 밝은 마커가 잘 어울릴 수 있고, 밝은 배경에는 대체로 어두운 마커가 적합합니다. 격자선은 데이터와 경쟁하지 않으면서도 보이는지 확인하세요. Seaborn은 색상 이름과 16진수 문자열을 포함한 표준 Matplotlib 색상 지정을 지원합니다. 화면뿐 아니라 저장된 이미지에서도 읽기 쉬운 색을 선택하세요.