词图云的制作费了整整一天,好在功夫不负有心人,成功搞出来了,就在这抓耳挠腮的过程中出现的问题,如何解决的跟大家分享一下!

1、导入wordcloud库

wordcloud绝对的必不可少,本人用pycharm做的,装wordcloud库的时候出现各种问题,比如settings环境可添加的库中根本就没有wordcloud库,只有一个r-wordcloud2,但是用不了,所以就没办法啊,没有库我怎么装!
还有一个方法嘞,直接去这个链接[(注意!一定要选对python的版本以及电脑的型号(https://www.lfd.uci.edu/~gohlke/pythonlibs/)]下载whl后缀的文件。打开cmd,然后pip install ,如果出现没有支持的wheel,然后pip install wheel,如果还是不行,那就是下载错版本了,本人就是死在这儿啦!!!!!!

2、去掉停用词

啥意思?文本里的文字都有用吗?显然不是,‘了’‘的’什么乱七八糟的根本就没有用啊!显示它干嘛!果断去掉,去这里找一个表下载下来。
[停用词链接表]https://github.com/goto456/stopwords

3、词图云背景图

词图云这个背景图,一定要注意一下!这个图形可是不简单,要求是png格式的,啥意思那?就是它需要你的背景图是一个透明图,看下图,红心周围白色的底遮挡住后面的字了,这就不是透明的

Python词云图保存设置像素 词云图pycharm制作_Python词云图保存设置像素


下面这张图那就是透明的了,除了红心部分,红心白底就透明面了,后面的字已经显示出来了!提醒:千万不要去网上下载什么后缀值png的图片,没有用,下载下来依然不透明。一个小技巧自己制作:一定选PowerPoint,WPS不行,插入图片,点击图片会出来"格式",点击“颜色”,有个“设置透明色”,然后点击红心周围的空白,就OK了!保存到工作路径!齐活

Python词云图保存设置像素 词云图pycharm制作_后缀_02

4、词图云参数

就说一个font_path,这个字体是windows自带的字体,找好路径,一般是在C盘的windows下的Fonts下全是字体,你就找你喜欢的吧!
其他的参数,有个小姐姐翻译的比较好,推荐![]

5、上代码!

import pandas as pd
import jieba
import PIL.Image as Image
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import numpy as np
import warnings

warnings.filterwarnings('ignore')

# 读取文本文件并进行分词
with open(r'dan_mu.text', encoding='utf-8') as f:
    txt1 = f.read()
txt = txt1.split()
data_cut = [jieba.lcut(x) for x in txt]
# jieba.lcut(x)直接生成一个list


# 读取停用词
with open(r"stopwords.txt", encoding='utf-8') as f:
    stop = f.read()
stop = stop.split()
# 去掉停用词之后的最终词
s_data_cut = pd.Series(data_cut)
all_words_after = s_data_cut.apply(lambda x: [i for i in x if i not in stop])
# apply的应用这个地方还是比较简洁的


# 词频统计
all_words = []
for i in all_words_after:
    all_words.extend(i)
word_count = pd.Series(all_words).value_counts()
# 这里比用字典要简单多了


# 词云图绘制
# 1)读取背景图片
back_picture =np.array(Image.open('D:\\爬虫\\xin.jpg'))
# 这里的图片已经处理过了,即使后缀是jpg,不是png它也已经是透明图了
# 这里要用到numpy库,据说是把图片搞成一个矩阵的形式,本来也用了imread,奈何不太好用


# 2)设置云参数
wc = WordCloud(font_path='C:\\Windows\\Fonts\\simkai.ttf',
               background_color='white',
               scale=10,
               # 调整文字的虚真程度
               max_words=100,
               mask=back_picture,
               # mask就是加入的背景图片的区域
               max_font_size=100,
               mode='RGBA',
               random_state=42)
wc2 = wc.fit_words(word_count)
# 根据给定的单词以及频率生成词图云
image_colors = ImageColorGenerator(back_picture)
# 根据图片的背景生成字体的颜色

# 3)绘制词图云
plt.figure(figsize=(16, 8))
plt.imshow(back_picture)
plt.imshow(wc2.recolor(color_func=image_colors))
plt.axis('off')
plt.show()
wc.to_file('ciyun.png')

运行出来的结果,是下面这个样子滴!

Python词云图保存设置像素 词云图pycharm制作_经验分享_03