2017-02-23 4 views
0

txt 파일의 텍스트를 사용하여 워드 클 라우드를 만들려고합니다.txt 파일의 Python Wordcloud

File "WordCloud.py", line 14, in <module> 
    ).generate(file_content) 
    File "C:\Python27\lib\site-packages\wordcloud\wordcloud.py", line 448, in generate 
    return self.generate_from_text(text) 
    File "C:\Python27\lib\site-packages\wordcloud\wordcloud.py", line 434, in generate_from_text 
    self.generate_from_frequencies(words) 
    File "C:\Python27\lib\site-packages\wordcloud\wordcloud.py", line 317, in generate_from_frequencies 
    font = ImageFont.truetype(self.font_path, font_size) 
    File "C:\Python27\lib\site-packages\PIL\ImageFont.py", line 238, in truetype 
    return FreeTypeFont(font, size, index, encoding) 
    File "C:\Python27\lib\site-packages\PIL\ImageFont.py", line 127, in __init__ 
    self.font = core.getfont(font, size, index, encoding) 
IOError: cannot open resource 

보너스 질문 :

지금까지 코드 내가

import matplotlib.pyplot as plt 
from wordcloud import WordCloud, STOPWORDS 


file_content=open ("tweets.txt").read() 



wordcloud = WordCloud(font_path = 'C:\Windows\Fonts\Verdana.tff', 
          stopwords=STOPWORDS, 
          background_color = 'white', 
          width=1200, 
          height=1000 
          ).generate(file_content) 

plt.imshow(wordcloud) 
plt.axis('off') 
plt.show() 

이 코드가 실행 한 후 표시되는 오류가 얼마나 텍스트 색상을 변경하려면?

+0

'tweets.txt' 파일의 샘플을주세요. –

+2

Verdana.ttf가 아니어야한다고 생각합니다. – oat

+0

글꼴 파일이 누락되었습니다. '리소스를 열 수 없습니다' – oat

답변

1

글꼴을 ttf으로 변경하십시오. 우연히도 백 슬래시로 이스케이프되지 않도록하려면 r으로 시작하는 것이 좋습니다.

고유 한 색 구성표를 추가하려면 색 콜백 기능을 추가해야합니다. random_color_func. 이것은 임의의 L 및 고정 된 H와 S로 HSL 타입 컬러를 만듭니다.

import matplotlib.pyplot as plt 
from wordcloud import WordCloud, STOPWORDS 


def random_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None): 
    h = int(360.0 * 45.0/255.0) 
    s = int(100.0 * 255.0/255.0) 
    l = int(100.0 * float(random_state.randint(60, 120))/255.0) 

    return "hsl({}, {}%, {}%)".format(h, s, l) 

file_content=open ("tweets.txt").read() 

wordcloud = WordCloud(font_path = r'C:\Windows\Fonts\Verdana.ttf', 
          stopwords = STOPWORDS, 
          background_color = 'white', 
          width = 1200, 
          height = 1000, 
          color_func = random_color_func 
          ).generate(file_content) 

plt.imshow(wordcloud) 
plt.axis('off') 
plt.show()