- 데이터 시각화 결과물에는 글자가 많이 들어갑니다.
- 축 레이블, 눈금 레이블, 타이틀 뿐 아니라 그림 위에 데이터를 명시하기도 합니다.
- 글꼴, 글자 크기, 스타일 등을 자유자재로 다뤄봅니다.
1. Matplotlib 글꼴
matplotlib.axes.Axes.text
matplotlib.font_manager
matplotlib User’s Guide #Text properties and layout
Pega Devlog: Matplotlib Defaults & Fonts
- 그림 곳곳에는 글자가 있습니다.
1 | # sample data |

-
글꼴(font), 크기, 스타일, 굵기(weight) 등은 적절하게 바뀌어 사용되어야 합니다.
-
세 가지 방법을 사용해서 바꿀 수 있습니다.
- 1. 매개변수를 직접 전달:
fontsize,fontweight,fontstyle을 사용합니다. - 2. 글꼴 세팅 저장 (1):
matplotlib.font_manager.FontProperties()를 사용해 세팅을 전달합니다. - 3. 글꼴 세팅 저장 (2): fontdict를 사용해 전달합니다.
- 1. 매개변수를 직접 전달:
-
2번과 3번에 대한 글은 과거에 정리를 했습니다.
-
여기서는 매개변수에 따른 변화만 정리합니다.
2. fontstyle & fontsize
fontstyle은 [“normal”, “italic”, “oblique”]가 가능하지만 italic과 oblique는 동일합니다.fontsize는string과 포인트 크기로 설정할 수 있습니다.- 함께 묶어서 그려보겠습니다. 먼저 string으로 설정한 경우입니다.
1 | fontsizes = ['xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'] |

- string의 [‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’]은
- 숫자 형식으로는 [6, 7, 8, 10, 12, 14, 18]에 대응됩니다.
1 | fontsizes = [6, 7, 8, 10, 12, 14, 18] |

3. fontfamily & fontweight
- 글꼴은
fontfamily, 두께는fontweight로 변경합니다. - 그리고 두께는 글꼴에 따라 적용되는 정도가 다릅니다.
1 | fontweights = ['ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'] |

- 옵션에 따라 굵어지는 지점이 다릅니다.
- serif, monospace는 semibold부터,
- NanumGothic과 NanumBarunGothic은 medium부터 굵어집니다.
- 그리고 Lato는 여러 단계로 나뉩니다.
4. fonts random cheatsheet
-
Matplotlib의 fonts 옵션은
.plot()만큼이나 다양합니다.
fontfamily: 글꼴
fontsize: 글꼴 크기
fontstyle: 일반 vs 기울임
fontweight: 글꼴 굵기
rotation: 회전
haorhorizontalalignment: 가로 정렬
vaorverticalalignment: 세로 정렬 -
모든 효과를 나열하여 보기 힘들기 때문에 여러 매개변수를 적용한 표를 만듭니다.
-
실행할 때마다 랜덤으로 다른 옵션이 적용됩니다.
1 | from matplotlib import colors |
