三种实现词云图的方式
需要用到的第三方库 – matplotlib,jieba,wordcloud
import matplotlib.pyplot as plt
import jieba
from wordcloud import WordCloud
1.词频统计实现词云图
data={‘a’:20,’b’:30,’c’:15,’d’:22,’e’:50}
词频统计确保数据是字典格式
如果数据不是字典格式,设法弄成字典格式就好
如果文本是中文的,需要设置字体,不然会乱码
font=r'C:\Windows\Fonts\simfang.ttf'
wc = wordcloud.WordCloud(
background_color='white',
font_path=font,
width=500,
height=350,
max_font_size=50,
min_font_size=10,
mode='RGBA'
)
绘图
wc.generate_from_frequencies(data)
wc.to_file(r"d.png")
2.一段文字实现词云图
给出一段文本
text='祥子来自农村,是个破产的青年农民,勤劳、纯朴、善良,保留着农村哺育他、教养他的一切,却再也不愿意回农村去了。从农村来到城市的祥子,渴望以' \
'自己的诚实劳动买一辆属于自己的车。做个独立的劳动者是祥子的志愿、希望、甚至是宗教,凭着勤劳和坚忍,他用三年的时间省吃俭用,终于实现了理想,成为自食其' \
'力的上等车夫。但刚拉半年,车就在兵荒马乱中被逃兵掳走,祥子失去了洋车,只牵回三匹骆驼。祥子没有灰心,他依然倔强地从头开始,更加克己地拉车攒钱。' \
'可是,还没有等他再买上车,所有的积蓄又被侦探敲诈、洗劫一空,买车的梦想再次成泡影。'
先使用jieba库进行分词操作,后再画词云图
cut_text=jieba.cut(text)
result=" ".join(cut_text
如果文本是中文的,需要设置字体,不然会乱码
font=r'C:\Windows\Fonts\simfang.ttf'
wc=WordCloud(
background_color='white',
font_path=font,
width=500,
height=350,
max_font_size=50,
min_font_size=10,
mode='RGBA'
)
绘图
wc.generate(result)
wc.to_file(r"wordcloud.png")
plt.imshow(wc)
plt.axis("off")
plt.show()
3.自定义词云图样式
背景图片需使用透明背景(有条件可以ps抠图
这里另外需要导入的库是numpy,PIL
from PIL import Image
import numpy as np
设置自定义背景
mask = np.array(Image.open("t.png"))
绘图
f = open('data.txt',encoding='utf-8')
txt = f.read()
f.close()
wc=WordCloud(
background_color="white", \
width=400, \
height=300,\
max_words=200, \
max_font_size=80, \
mask=mask, \
contour_width=3, \
contour_color='steelblue'
)
wc.generate(txt)
wc.to_file(r"data词云图.png")
plt.imshow(wc)
plt.axis("off")
plt.show()
效果如下:
Original: https://blog.csdn.net/rphyllis/article/details/125957465
Author: rphyllis
Title: Python实现词云图的3种方式(词频,一段文本,自定义样式)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/763805/
转载文章受原作者版权保护。转载请注明原作者出处!