python的wordcloud使用

python有很多优秀的地方,现在我们使用wordcloud去制作一些好玩有趣的东西吧。

准备条件:
python 3.x,matplotlib,wordcloud,numpy+mkl,scipy

#win下的安装代码
在cmd环境下找到文件目录
python -m pip install --user numpy-3.5.3-cp35-cp35m-win_amd64.whl
python -m pip install --user scipy-0.18.1-cp35-cp35m-win_amd64.whl
python -m pip install --user wordcloud-1.2.1-cp35-cp35m-win_amd64.whl
python -m pip install --user matplotlib-2.0.0-cp35-cp35m-win_amd64.whl

以上的安装遇到的问题自己解决

以下是主要代码

from os import path
import jieba
from scipy.misc import imread
from wordcloud import WordCloud,STOPWORDS, ImageColorGenerator 
import matplotlib.pyplot as plt

d = path.dirname('.')
texts = open(path.join(d, 'ww.txt')).read()
#你保存的文件里面的数据自己可以定义,数量决定了你生成图片里面内容的大小
alice_coloring = imread(path.join(d, "ww_heart.png"))
#一个心型的图片
def word_segment(texts):
    jieba.analy.set_stop_words("ww.txt")
    for text in texts:
        tags=jieba.analyse.extract_tags(text,topK=20)
        yield " ".join(tags)


def generate_img(texts):
    #data=" ".join(text for text in texts)
    mask_img=imread("ww_heart.png")
    wc =WordCloud(
        font_path='msyh.ttc',
        background_color='white',
        mask=mask_img
        ).generate(texts)

    image_colors = ImageColorGenerator(alice_coloring)
    plt.imshow(wc)
    plt.axis('off')

    plt.figure()
    plt.imshow(wc.recolor(color_func=image_colors))
    plt.axis("off")

    plt.figure()
    plt.imshow(alice_coloring, cmap=plt.cm.gray)
    plt.axis("off")
    plt.show()

    wc.to_file(path.join(d, "www.png"))
word_segment(texts)
generate_img(texts)

注意:
复制C:\Windows\Fonts里面的Microsoft YaHei UI文件到
C:\Users\Abit\AppData\Roaming\Python\Python35\site-packages\matplotlib\mpl-data\fonts\ttf下
不然matplotlib会出现乱码
以下是生成的图片
python的wordcloud使用_第1张图片

你可能感兴趣的:(python)