python自定义背景画词云

python画词云主要用到四个库,jieba:用于分词;matplotlib:基础的画图库;wordcloud:生成词云对象;imageio:读取背景图片。安装方法均可使用 pip install 库名 进行在线安装。wordcloud库要是不能使用pip进行安装,就先下载,然后再用pip install 下载好库的储存路径 进行安装。python开源库的下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/。离线安装还是报错的话,就先卸载pillow库,重新安装pillow库,然后再安装wordcloud库就行了。

pip install xx        #安装库
pip uninstall xx      #卸载库

安装完后,from wordcloud import WordCloud 不会报错就说明安装成功。

##############################################################

import jieba
from wordcloud import WordCloud
from matplotlib import pyplot as plt
from imageio import imread

#读取数据
text = open('Walden.txt','r',encoding='utf-8').read()
#读取停用词,创建停用词表
stwlist = [line.strip() for line in open 'stopwords.txt',encoding='utf-8').readlines()]

#分词
words = jieba.cut(text,cut_all= False,HMM= True)

#文本清洗
mytext_list=[]
for seg in words:
    if seg not in stwlist and seg!=" " and len(seg)!=1:
        mytext_list.append(seg.replace(" ",""))
cloud_text=",".join(mytext_list)

#读取背景图片
jpg = imread('foo.jpg')
#生成词云
wordcloud = WordCloud(
    mask = jpg,
    background_color="white",
    font_path='simhei.ttf',  
    width = 1500,
    height = 960,
    margin = 10
).generate(cloud_text)
#font_path='simhei.ttf' 这个参数为指定字体

#绘制图片
plt.imshow(wordcloud)
#去除坐标轴
plt.axis("off")
plt.show()

#背景图

#词云

画中文词云方法一样,画中文词云避免乱码(不显示中文,显示方框),在绘制图片前plt.imshow() 先执行下述代码。

#避免中文乱码
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False

猜你喜欢

转载自blog.csdn.net/spartanfuk/article/details/82528986