Workbook 시각화의 글꼴
한국어, 일본어처럼 기본 라틴 글꼴에 없는 문자를 표시하려면 그 문자를 포함하는 font family를 명시합니다. 예를 들어 Matplotlib에서는 Noto Sans CJK JP를 사용할 수 있습니다.
글꼴 경로는 Workbook의 실행 환경 안에 있는 Linux 경로입니다. 사용자의 로컬 컴퓨터나 다른 Docker 이미지에 같은 파일이 있다고 가정하지 않습니다.
기본 제공 경로
/usr/share/fonts/truetype/dejavu/DejaVuSerifCondensed-Bold.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed-BoldOblique.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSans-Oblique.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed-Bold.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf
/usr/share/fonts/truetype/dejavu/DejaVuMathTeXGyre.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSerif-BoldItalic.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed-Oblique.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSerifCondensed-Italic.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Oblique.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSerifCondensed.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSerif-Italic.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSansMono-BoldOblique.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSans-ExtraLight.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSans-BoldOblique.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf
/usr/share/fonts/truetype/dejavu/DejaVuSerifCondensed-BoldItalic.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerifCondensed-Bold.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-BoldOblique.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-Bold.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldItalic.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-Oblique.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerifCondensed-Italic.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Oblique.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerifCondensed.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Italic.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-BoldOblique.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-ExtraLight.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerifCondensed-BoldItalic.ttf
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc
Matplotlib 2의 TTC 파일
Matplotlib 2.x에서는 .ttc를 자동으로 발견하지 못할 수 있습니다. 호환되는 3.x 환경으로 업그레이드하거나, 2.x 환경에서는 해당 버전의 font manager에 파일을 직접 등록합니다.
다음은 Matplotlib 2.x 전용 Workbook 노드입니다. 기본 설치된 Noto TTC를 등록한 뒤 두 언어 레이블을 그립니다. createFontList는 이전 API이므로 현재 Matplotlib 버전에 그대로 적용하지 않습니다.
@synchronous_node_execution
def legacy_cjk_font_example():
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt
font_path = "/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc"
fm.fontManager.ttflist += fm.createFontList([font_path])
with plt.rc_context({"font.family": "Noto Sans CJK JP"}):
fig, ax = plt.subplots()
ax.plot([10, 20, 30], [30, 30, 30], label="선 / ライン")
ax.set_title("한국어와 日本語")
ax.legend()
plt.show()
plt.close(fig)
일반적인 한국어 및 일본어 그림 예제는 Python 시각화의 글꼴 설정을 사용합니다. 라이브러리 버전을 바꿀 때는 Spark, NumPy와 다른 패키지의 환경 호환성도 함께 확인합니다.