Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib에서 사용 가능한 글꼴 패밀리(폰트 이름) 목록 확인하는 방법

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

참고: 중복 없는 정렬된 목록 만들기

위 방법은 동일한 글꼴 이름이 여러 번 중복되어 출력될 수 있습니다. 고유한 글꼴 이름만 정렬된 상태로 얻고 싶다면 파이썬의 setsorted 함수를 함께 사용하면 편리합니다.

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 인자에 적용할 폰트를 선택할 때 유용하게 활용할 수 있습니다.