데이터 시각화 차트에서는 워드클라우드 차트의 적용을 어디에서나 볼 수 있습니다. 일반적으로 입력된 텍스트에서 단어 빈도를 추출한 다음, 단어 발생 빈도에 따라 빈도가 높은 단어를 집중적으로 표시합니다. 오늘은 절묘한 단어 클라우드 그래프를 그리는 방법을 공유하겠습니다. 파이썬.
먼저 Python의 wordcloud 모듈을 사용하여 간단한 단어 구름 다이어그램을 그려 보겠습니다.
import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt
텍스트 내용을 가져오고 코드는 다음과 같습니다.
text = open(r"明朝那些事儿.txt",encoding='utf8').read() text = text.replace('n',"").replace("u3000","")
이번에는 jieba 모듈을 사용해야 합니다. 코드는 다음과 같습니다.
text_cut = jieba.lcut(text) # 将分好的词用某个符号分割开连成字符串 text_cut = ' '.join(text_cut)
물론, 필요하지 않은 관련성 없는 결과가 많이 있을 수 있습니다. 중요한 내용은 이때 불용어를 사용해야 하는데, 우리가 직접 만들어도 되고, 다른 사람이 만들어 놓은 불용어 목록을 직접 사용해도 되는데, 코드는 다음과 같습니다.
stop_words = open(r"常见中文停用词表.txt").read().split("n")
다음은 워드클라우드 다이어그램을 그리는 핵심 코드입니다.
word_cloud = WordCloud(font_path="simsun.ttc",# 设置词云字体 background_color="white", # 词云图的背景颜色 stopwords=stop_words) # 去掉的停词 word_cloud.generate(text_cut) word_cloud.to_file("1.png")
output
물론, 아래 그림과 같이 배경 이미지를 추가할 수도 있습니다. 아래와 같이 추가하세요:
background = Image.open(r"5.png") graph = np.array(background)
# 使用WordCloud生成词云 word_cloud = WordCloud(font_path="simsun.ttc",# 设置词云字体 background_color="white", # 词云图的背景颜色 stopwords=stop_words, # 去掉的停词 mask=graph) word_cloud.generate(text_cut) word_cloud.to_file("1.png")
Deep Optimization
에 마스크 매개변수를 추가하세요. 또한 매우 멋진 단어 클라우드 다이어그램을 그리는 또 다른 모듈 stylecloud가 있습니다. , 그 중 주로 다음 기능을 사용합니다.
gen_stylecloud(text=None, icon_name='fas fa-flag', colors=None, palette='cartocolors.qualitative.Bold_5', background_color="white", max_font_size=200, max_words=2000, stopwords=True, custom_stopwords=STOPWORDS, output_name='stylecloud.png', )
icon_name: 단어 구름 그래프의 모양
max_font_size: 최대 글꼴 크기
stylecloud.gen_stylecloud(text=text_cut, palette='tableau.BlueRed_6', icon_name='fas fa-apple-alt', font_path=r'田英章楷书3500字.ttf', output_name='2.png', stopwords=True, custom_stopwords=stop_words)
팔레트 매개변수는 팔레트로 사용되며 임의로 변경할 수 있습니다. 자세한 내용은 https://jiffyclub.github.io/palettable/ 이 웹사이트를 참조하세요.
pyecharts
마지막으로 Pyecharts 모듈을 사용하여 워드 클라우드 다이어그램을 그리는 방법을 살펴보겠습니다. 코드는 다음과 같습니다
from pyecharts import options as opts from pyecharts.charts import Page, WordCloud words = [ ("皇帝", 10000), ("朱元璋", 6181), ("明朝", 4386), ("朝廷", 4055), ("明军", 2467), ("士兵", 2244), ("张居正", 1868), ("王守仁", 1281) ] c = ( WordCloud() .add("", words, word_size_range=[20, 100]) .set_global_opts(title_opts=opts.TitleOpts(title="基本示例")) ) c.render("1.html")
결과는 약간 간단합니다. 여기서 주목할 만한 점은 pyecharts의 WordCloud() 메서드에 의해 전달된 데이터가 지정된 단어와 해당 단어의 발생 빈도라는 것입니다. 이것은 이전 작업과 다릅니다
.
위 내용은 Python을 사용하여 여러 단어 클라우드 다이어그램을 그려 모두를 놀라게 했습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!