Matplotlib으로 그래프를 작성하다 보면 시스템에 어떤 글꼴이 설치되어 있는지, 그리고 어떤 폰트 이름을 사용할 수 있는지 확인해야 할 때가 있습니다. Matplotlib은 font_manager 모듈을 통해 사용 가능한 모든 글꼴 정보를 제공하므로, 이를 활용하면 간단하게 전체 글꼴 목록을 조회할 수 있습니다.
글꼴 목록을 가져오는 방법
Matplotlib에서 글꼴 패밀리 목록을 얻으려면 다음 단계를 따르면 됩니다.
- ttflist:
fontManager객체가 관리하는 TrueType 폰트 목록을 순회하며 각 폰트의 이름을 출력합니다. - afmlist: Adobe Font Metrics(AFM) 형식의 폰트 목록을 순회하며 각 폰트의 이름을 출력합니다.
두 리스트의 각 항목은 FontEntry 객체로, 여기에는 name(글꼴 이름) 외에도 스타일, 변형(variant), 가중치(weight), 파일 경로 등 다양한 속성이 포함되어 있습니다.
예제 코드
import matplotlib.font_manager as fm
# TrueType 폰트 목록 출력
for f in fm.fontManager.ttflist:
print(f.name)
# AFM 폰트 목록 출력
for f in fm.fontManager.afmlist:
print(f.name)실행 결과
위 코드를 실행하면 시스템에 설치된 글꼴 이름들이 아래와 같이 출력됩니다. 환경마다 설치된 폰트가 다르기 때문에 결과는 사용자마다 조금씩 다를 수 있습니다.
STIXNonUnicode STIXGeneral STIXSizeFiveSym cmr10 ... ... ... Nimbus Sans L Bitstream Charter Nimbus Sans L Nimbus Sans L
참고: 중복 없는 정렬된 목록 만들기
위 방법은 동일한 글꼴 이름이 여러 번 중복되어 출력될 수 있습니다. 고유한 글꼴 이름만 정렬된 상태로 얻고 싶다면 파이썬의 set과 sorted 함수를 함께 사용하면 편리합니다.
import matplotlib.font_manager as fm
font_names = sorted({f.name for f in fm.fontManager.ttflist})
for name in font_names:
print(name)이렇게 하면 중복이 제거된 깔끔한 글꼴 이름 목록을 알파벳순으로 확인할 수 있으며, 차트의 plt.rcParams['font.family'] 설정이나 fontname 인자에 적용할 폰트를 선택할 때 유용하게 활용할 수 있습니다.