일단 공통기능과 분기기능이 있는데 공통기능부터 보고 가자.
공통 기능
from argparse import FileType
import tkinter
from tkinter import filedialog
모듈
root = tkinter.Tk()
root.withdraw()
dir_path = filedialog.askopenfilename(parent=root,initialdir="/home/koreanraichu",title='Please select a directory',filetypes = (("*.png","*png"),("*.jpg","*jpg"),("*.gif","*gif")))
image = np.array(Image.open(dir_path))
# 마스킹할 이미지(흰 바탕에 검정색을 권장함)
font_path = '/usr/share/fonts/나눔손글씨 바른히피.ttf'
wordcloud = WordCloud(font_path = font_path,stopwords=STOPWORDS,
background_color="#ffffff",colormap="magma",width = 800, height=800,
mask=image)
# Font path: 글꼴 설정하실 경우 여기에 쓰세요
# background color: wordcloud 배경 설정할 때 여기서 하세요
# colormap: 워드클라우드 글자색을 여기서 바꿔주세요(matplotlib colormap 치면 많이 나옵니다)
본 코드
마스킹 이미지를 디렉토리 창에서 소환할 수 있다.
분기 기능
워드클라우드 이미지를 저장하는 기능인데, Entrez랑 Text에 다르게 적용됐다. 일단 설명하기 간단한 Text부터 보고 가자.
Text to wordcloud
root = tkinter.Tk()
root.withdraw()
save_path = filedialog.asksaveasfilename(parent=root,initialdir="/home/koreanraichu",title='Please select a directory',filetypes = (("*.png","*png"),("*.jpg","*jpg"),("*.gif","*gif")))
image = np.array(Image.open(dir_path))
wordcloud = wordcloud.generate_from_text(text)
plot.figure(figsize=(15,15))
plot.axis('off')
plot.imshow(wordcloud)
plot.savefig(save_path)
plot.show()
print("wordcloud saved where {}".format(save_path))
저장할 때도 경로를 띄워주고, 이름도 저기서 입력하면 된다.
Entrez with wordcloud
term = input("Entrez database에서 가져오고 싶은 주제가 뭔가요? (Title로 검색) \n")
year = input("특별히 보고 싶은 년도가 있나요? (optional, 없으면 공백으로 입력해주세요) \n")
if year:
terms = "{}[TITLE] AND {}[YEAR]".format(term,year)
else:
terms = "{}[TITLE]".format(term)
Entrez module의 경우 제목(에 들어가는 단어)과 연도를 입력받는데, 이건 나중에 검색 옵션이 추가되면 elif 범벅이 될 수도 있다. 그때는 아마 text처럼 될 지도 모름… 사실 핸들에 있는 걸 가져올 수 있으면 좋은데, 그걸 못 가져온다. (원래 handle에 term=”Bioinformaticd[TITLE]” 이런 식으로 쓴다)
if year:
save_dir = "{}/{}&{}.png".format(save_path,term,year)
else:
save_dir = "{}/{}.png".format(save_path,term)
저장 경로가 뜨는 기본 골자는 같지만, 위에서 연도와 용어를 입력받기 때문에 파일명이 그걸로 자동 생성된다. 즉, 파일 이름을 입력하는 게 아니라 말 그대로 저장 경로만 선택해주면 된다.
Reply