제목과 축 레이블
"발표 자료로 쓰려면 제목이랑 축 설명은 붙여야 해."
선배의 말에 민서는 고개를 끄덕였습니다. 그래프가 예뻐도, 보는 사람이 무엇을 보고 있는지 모르면 의미가 없었습니다.
Axes-level 함수에서 제목과 축 레이블
Seaborn의 Axes-level 함수는 Axes 객체를 반환합니다. 이 객체에 Matplotlib 메서드를 바로 적용할 수 있습니다.
import seaborn as snsimport matplotlib.pyplot as plttips = sns.load_dataset("tips")ax = sns.scatterplot(data=tips, x="total_bill", y="tip")ax.set_title("계산서 금액과 팁의 관계")ax.set_xlabel("계산서 금액 (달러)")ax.set_ylabel("팁 (달러)")plt.show()
ax.set_title(), ax.set_xlabel(), ax.set_ylabel()은 Matplotlib에서 제공하는 메서드입니다. Seaborn이 반환한 Axes 객체에 그대로 쓸 수 있습니다.
plt 함수로 설정하기
변수에 저장하지 않고 plt 모듈의 함수를 바로 사용하는 방법도 있습니다.
import seaborn as snsimport matplotlib.pyplot as plttips = sns.load_dataset("tips")sns.scatterplot(data=tips, x="total_bill", y="tip")plt.title("계산서 금액과 팁의 관계")plt.xlabel("계산서 금액 (달러)")plt.ylabel("팁 (달러)")plt.show()
plt.title(), plt.xlabel(), plt.ylabel()은 현재 활성화된 Axes에 자동으로 적용됩니다. 간단한 단일 차트에서는 편리하지만, subplot을 다룰 때는 어떤 Axes에 적용되는지 명확하지 않을 수 있어 ax.set_*() 방식을 권장합니다.
Figure-level 함수에서 제목과 축 레이블
Figure-level 함수(relplot, catplot 등)는 FacetGrid를 반환합니다. Axes 메서드를 직접 쓸 수 없고, FacetGrid 전용 메서드를 사용합니다.
import seaborn as snsimport matplotlib.pyplot as plttips = sns.load_dataset("tips")g = sns.relplot( data=tips, x="total_bill", y="tip", col="time")# FacetGrid 축 레이블g.set_axis_labels("계산서 금액 (달러)", "팁 (달러)")# Figure 전체 제목g.figure.suptitle("시간대별 계산서 금액과 팁", y=1.02)plt.show()
g.set_axis_labels()는 x축과 y축 레이블을 한 번에 설정합니다. g.figure.suptitle()은 Figure 전체의 상단 제목입니다. y=1.02는 제목이 그래프 위로 조금 올라가도록 위치를 조정하는 값입니다.
축 범위 조절
특정 범위만 확대해서 보고 싶을 때는 ax.set_xlim()과 ax.set_ylim()을 사용합니다.
import seaborn as snsimport matplotlib.pyplot as plttips = sns.load_dataset("tips")ax = sns.scatterplot(data=tips, x="total_bill", y="tip")ax.set_title("계산서 금액과 팁의 관계 (제한된 범위)")ax.set_xlabel("계산서 금액 (달러)")ax.set_ylabel("팁 (달러)")# x축: 0~50, y축: 0~10으로 제한ax.set_xlim(0, 50)ax.set_ylim(0, 10)plt.show()
범위를 벗어나는 데이터 포인트는 표시되지 않습니다. 이상치를 제외하고 주요 분포에 집중해서 보고 싶을 때 유용합니다.