HOWTO · Matplotlib
Matplotlib에서 그림 제목 및 축 레이블 글꼴 크기를 설정하는 방법
Matplotlib에서 제목 및 축의 크기와 글꼴은 글꼴 크기 매개 변수, label.set_size() 및 rcParams 사전을 사용하여 설정할 수 있습니다.
이 페이지의 내용
하나의 플롯에서만 바꾸려면 제목과 레이블을 설정하는 호출에 fontsize를 전달하세요. 재사용할 기본값은 rcParams를 수정하고, 이미 만들어진 텍스트 객체를 각각 바꾸려면 set_size()를 호출하면 됩니다. 예제에서는 Axes 제목을 사용합니다. Figure 전체 제목은 별개이며 fig.suptitle()로 설정합니다.
fontsize로 제목과 축 레이블 크기 설정하기
Axes.set_title(), Axes.set_xlabel(), Axes.set_ylabel()에 fontsize를 직접 전달하세요. 이 호출들은 해당 Axes의 제목과 레이블 크기를 제어합니다. Figure 전체 위쪽에도 제목을 표시하려면 fig.suptitle()을 사용하고, 여기에 별도의 fontsize 값을 지정하세요.
Matplotlib에서 숫자로 지정하는 글꼴 크기의 단위는 포인트입니다. 여러 호출에 같은 값을 사용하면 일관된 모양을 만들 수 있고, 제목을 더 크게 지정하면 시각적 위계를 나타낼 수 있습니다. 각 텍스트 설정 호출에 값을 따로 전달하므로 다른 텍스트는 그대로 두고 레이블 하나만 조정할 수도 있습니다.
다음 전체 예제는 플롯을 만들고 Axes 제목과 두 레이블을 설정한 다음, Figure 전체 제목을 별도로 추가합니다. 레이아웃에 맞게 포인트 크기를 조정하세요.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([0, 1, 2], [0, 1, 4])
ax.set_title("Values by x", fontsize=16)
ax.set_xlabel("x", fontsize=12)
ax.set_ylabel("value", fontsize=12)
fig.suptitle("Example figure", fontsize=20)
plt.show()
rcParams로 기본 글꼴 크기 설정하기
rcParams에는 Matplotlib의 설정 기본값이 저장됩니다. 이를 수정하면 현재 Python 프로세스에서 이후에 생성되는 플롯 요소에 적용되는 기본값이 바뀝니다. 기본값을 일관되게 적용하려면 플롯을 만들기 전에 값을 설정하세요. 특정 텍스트만 다른 크기로 표시하려면 해당 호출에 fontsize를 전달하면 됩니다.
x축과 y축 레이블에는 axes.labelsize, Axes 제목에는 axes.titlesize, fig.suptitle()로 만든 Figure 전체 제목에는 figure.titlesize를 사용하세요. 앞의 두 설정은 Figure 제목 설정과 별개입니다. 이 매개변수에는 포인트 단위의 숫자나 지원되는 이름 크기를 지정할 수 있습니다.
import matplotlib.pyplot as plt
plt.rcParams.update({
"axes.labelsize": 12,
"axes.titlesize": 16,
"figure.titlesize": 20,
})
fig, ax = plt.subplots()
ax.plot([0, 1, 2], [0, 1, 4])
ax.set_title("Values by x")
ax.set_xlabel("x")
ax.set_ylabel("value")
fig.suptitle("Example figure")
plt.show()
특정 플롯에만 다른 기본값이 필요하다면 matplotlib.rc_context()를 사용해 코드 블록 동안 임시 rcParams 설정을 적용하세요. 그러면 해당 설정이 프로세스에서 뒤이어 만드는 플롯의 기본값으로 남지 않습니다.
예를 들어 with plt.rc_context({"axes.labelsize": 12, "axes.titlesize": 16}):를 사용하면 들여쓰기된 플롯 코드에 두 설정이 적용됩니다. 블록을 벗어나면 Matplotlib이 이전 설정을 복원합니다. 스타일이 서로 다른 플롯을 만드는 스크립트에서 유용합니다.
set_size()로 제목과 레이블 크기를 각각 조정하기
각 제목과 축 레이블은 set_size() 메서드가 있는 텍스트 객체입니다. 플롯이 이미 만들어졌거나 제목과 레이블에 서로 다른 값을 지정해야 할 때 유용합니다. 다음 예제에서는 plt.gca()로 현재 Axes를 가져온 다음, 해당 Axes의 제목과 레이블 텍스트 객체에 크기를 설정합니다.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([0, 1, 2], [0, 1, 4])
ax.set_title("Values by x")
ax.set_xlabel("x")
ax.set_ylabel("value")
axes = plt.gca()
axes.title.set_size(16)
axes.xaxis.label.set_size(12)
axes.yaxis.label.set_size(12)
plt.show()
여러 Axes를 다룰 때는 plt.gca()에 의존하기보다 ax.title.set_size(16)처럼 변경하려는 Axes의 참조를 보관하세요. plt.gca()는 현재 Axes를 반환합니다. Figure 전체 제목의 크기는 fig.suptitle()을 호출할 때 설정하거나, 반환된 텍스트 객체를 보관해 set_size()를 호출하면 됩니다. Axes 제목은 한 패널에 속하고 Figure 제목은 Figure 전체를 설명합니다.