파이썬 개발일지_03주

써니·2021년 12월 19일
0

워드클라우드! 오오오오 -

준비물1: 우선 패키지를 깔아준다. 워드클라우드를 그려주는 친군가봉가

conda install -c conda-forge wordcloud

준비물2: 각종 친구들을 임포트 해준다.

import numpy as np
from PIL import Image
from wordcloud import WordCloud
import matplotlib.pyplot as plt

내 노래 미리 txt 파일로 맨들어주고, 적절한 경로에 넣어두고는 불러와본다.

mysong = open('./data/downtown_baby.txt')
mysong = mysong.read()
mysong

이르케 조금 \n 때문에 복잡해 보인다.

이대로 워드클라우드를 뽑으면 \n이 1등으로 나올 수 있다.
\n을 퍄퍄퍄 부셔주자

mysong = mysong.replace('\n', " ")
mysong

이건 몰라.. 선생님도 대충 설명하면서 넘어간다. 폰트 뭐 그런 매니저 응.. 그렇단다. 깊게 알지 못하고 복붙 하기로 한다...

import matplotlib.font_manager as fm

for f in fm.fontManager.ttflist:
    if 'Gothic' in f.name:
        print(f.fname)

결과에서 나온 폰트 경로를 하나 픽업하라고 한다.
그리고 font=path = '요기 넣음쓰' 라고 하는데.. 아래 예시 보셈

font_path = '/System/Library/Fonts/Supplemental/AppleGothic.ttf'

wc = WordCloud(font_path = font_path, background_color="white")
wc.generate(mysong)

plt.figure(figsize=(50,50))
plt.axis("off")
plt.imshow(wc)
plt.show

이것도 거의 복붙인데, 내가 원하는 이미지를 하나 경로에 저장해둔다.
나는 heart.jpeg 를 사용했다.

# Generate a word cloud image
mask = np.array(Image.open('./data/heart.jpeg'))
wc = WordCloud(font_path=font_path, background_color="white", mask=mask)
wc.generate(mysong)

f = plt.figure(figsize=(50,50))
f.add_subplot(1,2, 1)
plt.imshow(mask, cmap=plt.cm.gray)
plt.title('Original Stencil', size=40)
plt.axis("off")
f.add_subplot(1,2, 2)
plt.imshow(wc, interpolation='bilinear')
plt.title('Sparta Cloud', size=40)
plt.axis("off")
plt.show()

결과는 그럴싸하다...?!

이 이미지를 굳이굳이 코드를 써서 파일로 빼보는 것도 배운다.
파일명 mySong_downtown_baby.png 으로 저장된다.

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = "AppleGothic"

font_path = '/System/Library/Fonts/Supplemental/AppleGothic.ttf'

mask = np.array(Image.open('./data/heart.jpeg'))
wc = WordCloud(font_path=font_path, background_color="white", mask=mask)
wc.generate(mysong)

f = plt.figure(figsize=(30,30))
plt.imshow(wc, interpolation='bilinear')
plt.title('Downtown Baby 워드 클라우드', size = 40)
plt.axis("off")
plt.show()
f.savefig('./data/mySong_downtown_baby.png')

최종 결과쓰:

재밌긴한데.. 또 그닥 쓸모가 없어보여서 애매~하다...ㅋㅋㅋ
이걸 왜 내가 코드로.. 그리고 있는거야...? 으응...

이미 리대쉬에 있는 기능이라 굳이굳이 일에는 써먹기 애매하지만, 개인적으로 해볼 재미진 것들이 좀 있을 것 같다.

profile
써니.와우

0개의 댓글

관련 채용 정보