python wordcloud生成词云

发布时间 2023-11-22 15:49:43作者: boye169
#!/usr/bin/env python
# coding:utf-8

# pip install wordcloud
# pip install matplotlib
import wordcloud
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image

text = """给你一瓶魔法药水
喝下去就不需要氧气
给你一瓶魔法药水
喝下去就不怕身体结冰
轻轻念着你懂的咒语
一扇门就通往银河系
给你一瓶魔法药水
我们一起去太空旅行
宇宙的有趣我才不在意
我在意的是 你牵我的手 而乱跳的心
宇宙的有趣我才不在意
我在意的是 你想跟着我 去月球谈
拥有你 就不需要魔法给的勇气
轻轻念着你懂的咒语
一扇门就通往银河系
给你一瓶魔法药水
我们一起去太空旅行
宇宙的有趣我才不在意
我在意的是 你牵我的手 而乱跳的心
宇宙的有趣我才不在意
我在意的是 你想跟着我 去月球谈心
宇宙的有趣我才不在意
我在猜的是 前方的距离 几步走到你
宇宙的有趣我才不在意
我期待的是 今天的晚餐 你想吃哪里
拥有你就不需要魔法给的勇气
你走的方向最后到哪去
可能是火星或者是金星
不管多远多近多累都没关系
我的魔法只对你偏心
我偏心
我偏心
宇宙的有趣我才不在意
我在意的是 你牵我的手 而乱跳的心
宇宙的有趣我才不在意
我在意的是 你想跟着我 去月球谈心
宇宙的有趣我才不在意
我在猜的是 奔跑的距离 几步走到你
宇宙的有趣我才不在意
我期待的是 今天的晚餐 你想吃哪里
有你在
就不需要魔法给的勇气
"""

'''
wordcloud:参数

width	词云对象生成图片的宽度,默认400像素
height	词云对象生成图片的高度,默认200像素
min_font_size	词云中字体的最小字号,默认4号
max_font_size	词云中字体的最大字号,根据高度自动调节
font_step	词云中字体字号的步进间隔,默认为1
font_path	字体文件的路径,默认None
max_words	词云显示的最大单词数量,默认200
stop_words	词云的排除词列表,即不显示的单词列表
mask	词云形状,默认为长方形,需要引用imread()函数
background_color	词云图片的背景颜色,默认为黑色

'''


# 获取形状
# mask = np.array(Image.open('img/3.png'))


# 设置停用词
stopwords = set(["魔法", "宇宙", "有趣", "勇气"])

# 设置词云对象
wc = wordcloud.WordCloud(width=800, height=800, background_color='white',colormap='viridis', stopwords=set(stopwords)).generate(text)

# 绘制词云
plt.figure(figsize=(8, 8), facecolor=None)
plt.imshow(wc)
plt.axis("off")
plt.tight_layout(pad=0)

# 显示词云
plt.show()

 

中文乱码解决

使用wordColud设计词云的时候可能会产生乱码问题,因为wordColud默认的字体不支持中文,所以我们只需要替换wordColud的默认字体即可正常显示中文。

1、中文词云乱码

我们使用simhei(黑体)来替换wordColud的默认字体。

2、替换默认字体

C:\Windows\Fonts

 

a、在C:\Windows\Fonts目录黑体 常规(simhei.tff)拷贝到wordColud安装的文件夹中,文件夹路径:anaconda(python)-->lib-->site-packages-->wordcolud,如下图:

 b、修改wordcolud.py文件中的字体设置,打开改路径下的wordcolud.py文件,找到下图的所示的框出来的将DroidSansMono.ttf修改为simhei.ttf