wordcloud를 만들어주는 djongo 프로젝트를 aws로 배포하려고 하는데 글꼴이 자꾸 깨졌다.
에러 문구
ubuntu findfont: Font family ['NanumBarunGothic'] not found. Falling back to DejaVu Sans.
wordcloud 함수를 사용할 때 윈도우 글꼴 파일 경로를 사용한 것이 원인이었다.
현재 운영체제(우분투 18.4)에 한글 글꼴을 다운로드 받아 그 경로를 넣어주면 해결할 수 있다.
나눔글꼴을 다운받고 matplotlib 모듈이 한글을 사용할 수 있도록 하는 것은 이 블로그를 참고했다.
다 똑같은데, 나는 aws의 ubuntu로 배포해서 matplotlib 경로가 다르다.
sudo cp /usr/share/fonts/truetype/nanum/Nanum* /usr/local/lib/python3.4/dist-packages/matplotlib/mpl-data/fonts/ttf/
대신
sudo cp /usr/share/fonts/truetype/nanum/Nanum* /home/ubuntu(사용자 계정)/[가상환경 이름]/lib/python3.x(파이썬 버전)/site-packages/matplotlib/mpl-data/fonts/ttf
로 해야한다. matplotlib의 font 경로를 못 찾겠으면 find / -name matplotlib
을 사용하면 된다.
다 따라해주고 난 다음에, 아래와같이 사용했더니 해결되었다.
font_manager 사용 시
font_manager.FontProperties(fname="/usr/share/fonts/truetype/nanum/NanumBarunGothic.ttf").get_name()
WordCloud 사용 시
WordCloud(font_path='/usr/share/fonts/truetype/nanum/NanumBarunGothic.ttf',
background_color='white'
width=900,
height=360,
max_words=100,
max_font_size=200,
)
font_family에 사용 시
nx.draw(
G, pos, with_labels=True,
font_family="NanumBarunGothic",
font_size = 8,
font_weight = 'bold',
node_size = sizes,
width = widths)