词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。
一、在线生成词云图
1、进入https://wordart.com/create;2、导入文本关键词;3、选择词云图形状;4、选择字体,由于默认的是英文字体,要生成中文字体需要自行在C:\windows\Fonts添加字体,可以选择雅黑字体。点Add Font添加就行;5、选择文字的方向,选择文字方向即可;6、点击Visualize生成词云图;7、点击Download and Share下载图片。
二、买家评价舆情分析
import pandas as pdfrom pyecharts import WordCloud
wd=pd.read_csv("cp.csv",header=0)wd.head()
catename=[i[0]for i in wd[["关键词"]].values]value=[int(i[0])for i in wd[["词频"]].values]wordcloud=WordCloud(width=1200,height=600)wordcloud.add("",catename,value,word_size_range=[10,100],shape='star')
三、文本词云图
导入文本数据并作图。
filename = "wang.txt"mytext = open(filename).read()mytext
from wordcloud import WordCloud
mycloud = WordCloud().generate(mytext)mycloud
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] # 中文显示mycloud = WordCloud(font_path = 'simsun.ttc', collocations=False).generate(mytext) #解决重复问题%config InlineBackend.figure_format='svg'#矢量图显示,解决图片不清晰问题plt.imshow(mycloud)
plt.imshow(mycloud)plt.axis('off') #去除坐标轴plt.show()
替换背景图,代码封装。
from wordcloud import WordCloudimport matplotlib.pyplot as pltimport imageiofilename = "Python.txt"mytext = open(filename).read()picture = imageio.imread('people.jpg')mycloud = WordCloud( background_color = 'white', # 背景颜色 max_words = 20000, # 最大词数 mask = picture, # 以该参数值作图绘制词云,width和height会被忽略 max_font_size = 30, # 显示字体的最大值 font_path = 'simsun.ttc', # 解决显示口字型乱码问题 collocations=False, # 避免词重复 ).generate(mytext)plt.imshow(mycloud)plt.axis('off')plt.savefig('new.jpg',dpi=1000,edgecolor='blue',transparent=True, bbox_inches='tight', quality=95)plt.show()
将此背景图片放置在路径下,建议选择一个纯色的背景图。
生成的效果如下所示: