!fc-list

!fc-list

"""
Explanation: matplotlib 폰트 설정 및 한글 사용
여기에서는 리눅스 운영체제에서 matplotlib 을 사용한 플롯에서 디폴트 폰트가 아닌 다른 폰트를 사용하거나 한글을 사용하기 위한 방법을 설명한다. 
폰트 설치
matplotlib에서 특정한 폰트를 사용하기 위해서는 우선 시스템에 폰트가 설치되어 있어야 한다. 폰트 설치 여부는 fc-list 명령으로 확인할 수 있다.
datascienceschool/rpython에는 다음과 같은 폰트들이 설치되어 있다. 한글 폰트로는 나눔폰트, 은폰트 등이 설치되어 있다.
End of explanation
"""


mpl.font_manager.get_fontconfig_fonts()

mpl.font_manager.get_fontconfig_fonts()

"""
Explanation: matplotlib 에서 폰트 확인
matplotlib는 시스템에 설치된 폰트 중 True Type 폰트를 기존적으로 사용한다. matplotlib에서 사용할 수 있는 폰트를 확인하려면 폰트 매니저의 get_fontconfig_fonts 명령을 사용한다.
End of explanation
"""


set(sorted([f.name for f in mpl.font_manager.fontManager.ttflist]))

"""
Explanation: 실제 폰트 설정을 위해서는 이 폰트 파일 이름이 아니라 폰트 이름을 알아야 한다.
End of explanation
"""


font1 = {'family': 'UnPenheulim', 'color':  'black', 'size': 24}
font2 = {'family': 'UnGungseo', 'color':  'darkred', 'weight': 'normal', 'size': 18}
font3 = {'family': 'NanumGothic', 'color':  'blue', 'weight': 'light', 'size': 12}

x = np.linspace(0.0, 5.0, 100)
y = np.cos(2*np.pi*x) * np.exp(-x)

plt.plot(x, y, 'k')
plt.title(u'한글 제목', fontdict=font1)
plt.xlabel(u'시간 (s)', fontdict=font2)
plt.ylabel(u'전압 (mV)', fontdict=font3)
plt.subplots_adjust()
plt.show()

"""
Explanation: 폰트 사용
폰트를 사용하는 방법은 크게 두가지 이다. 

인수를 사용하여 개별 텍스트 관련 명령에만 적용
rcParams 설정으로 이후의 그림 전체에 적용

인수 사용
개별 명령어마다 다른 폰트를 사용하려면 fontdict 인수를 사용한다.
End of explanation
"""


mpl.rcParams['font.family'] = 'Nanum Brush Script'

x = np.linspace(0.0, 5.0, 100)
y = np.cos(2*np.pi*x) * np.exp(-x)

plt.plot(x, y, 'k')
plt.title(u'한글 제목', size=36)
plt.xlabel(u'시간 (s)', size=24)
plt.ylabel(u'전압 (mV)', size=18)
plt.subplots_adjust()
plt.show()

"""
Explanation: rcParams 설정
모든 그림에 동일한 폰트를 적용하려면 rcParams 설정 사전의 font.family 항목을 설정한다.
End of explanation
"""


