用词云做我的头像

本文记录了在Win7环境下使用Python3.5安装Wordcloud的过程,包括遇到的pip更新、找不到vcvarsall.bat等问题,以及解决办法。最终成功运行Wordcloud并展示了需要对中文字符进行的特殊处理。

虽然还不对Python有很深的理解,就献丑啦。将最近生成词云的坎坷经历记录一下。
Python的安装这些就不多说了。
这里有几个参照的经验帖:
第一个A,第二个B
先介绍一下本机环境为Win7下安装的是Python3.5版本。
第一个悲剧——如何安装Wordcloud
两个经验中都提到了如何安装,由于是在Win7下,所以只能通过Python中的pip命令进行安装。但在这个过程中,我更新pip算是小事那就不提了。先后从github上下载了安装包,之后发现并不可行,莫名其妙的发现了一个“轮子仓库”,有好多已有的模块(包括之后用到的scipy模块、numpy+mkl模块和matplotlib模块),网址在
第二个悲剧——unable to find vcvarsall.bat
我的问题,在知乎上也有提问和解答。我采用的是安装Visual Studio。
1. 好像在哪里看到Python3.5需要安装VS2015,于是到官网下载VS2015版本
2. 安装好之后,运行程序,发现报错。按照提示下载相应的模块(下载方式同Wordcloud)。
3. 之后又发现,自己程序并不能运行,并不知道为什么会闪退。于是运行Wordcloud自带的案例发现可以运行。在比较之后,在自己的程序里的第一行添加了#!/usr/bin/env python

最后的代码(夜深了,注释就不打了,见谅):

#!/usr/bin/env python
from os import path
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
d = path.dirname(__file__)
text = open(path.join(d, 'test.txt'), encoding = 'utf-8').read()
alice_coloring = np.array(Image.open(path.join(d, "timg.jpg")))
stopwords = set(STOPWORDS)
stopwords.add("said")
wc = WordCloud(font_path = './simhei.ttf', background_color="white", max_words=2000, mask=alice_coloring, stopwords=stopwords, max_font_size=40, random_state=42)
wc.generate(text)
alice_coloring = np.array(Image.open(path.join(d, "alice_color.png")))
image_colors=ImageColorGenerator(alice_coloring)
plt.figure()
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,"newwc.png"))

注:以上代码并不能处理相连的中文文章,处理的中文也是经过通过空格预先分隔的。
此处,需要对中文字符做些处理,比如utf-8编码(同时注意txt文件的编码方式)等,可以参考上述B经验。此外要显示中文,需要对应的中文字体(Wordcloud中不存在的)。我用的是简体黑,下载的网址是这个


好了,经历就记录到这里吧。明天六月一,年少轻狂,幸福时光,各位晚安啦。

生成由词组成的爱心形状图像可以通过 Python 的 `wordcloud` 库结合爱心形状的掩膜(mask)来实现。以下是实现这一效果的具体步骤和代码示例: ### 1. 安装所需的库 确保安装了以下库: ```bash pip install wordcloud matplotlib numpy pillow ``` ### 2. 准备爱心形状的掩膜图像 需要一张纯白色的爱心形状图像作为掩膜,背景为黑色。可以使用在线工具生成或者手动绘制。掩膜图像的格式应为 PNG。 ### 3. 编写代码生成词 ```python from wordcloud import WordCloud, ImageColorGenerator from PIL import Image import numpy as np import matplotlib.pyplot as plt # 加载文本数据(可以替换为自己的文本) text = "love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart love heart" # 加载爱心形状的掩膜图像 mask = np.array(Image.open("heart_mask.png")) # 替换为你的爱心掩膜图像路径 # 生成词 wordcloud = WordCloud( width=800, height=800, background_color='white', mask=mask, contour_width=3, contour_color='red', max_words=200, colormap='Reds' ).generate(text) # 显示词图像 plt.figure(figsize=(8, 8)) plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show() # 保存词图像(可选) wordcloud.to_file("heart_wordcloud.png") ``` ### 4. 代码说明 - **WordCloud 参数**: - `width` 和 `height`:设置生成图像的尺寸。 - `background_color`:设置背景颜色。 - `mask`:传入爱心形状的掩膜图像,限制词的形状。 - `contour_width` 和 `contour_color`:设置爱心轮廓的宽度和颜色。 - `max_words`:控制词中显示的最大单词数量。 - `colormap`:设置颜色映射,可以选择其他颜色映射如 `plasma`、`inferno` 等。 ### 5. 注意事项 - 确保掩膜图像为黑白图像,其中白色区域为词生成的区域,黑色区域为背景。 - 可以调整 `contour_width` 和 `contour_color` 来增强爱心轮廓的视觉效果。 - 文本数据可以根据需要替换为自己的内容。 ### 示例输出 运行代码后,将生成一张由词组成的爱心形状图像,并显示在窗口中或保存为文件。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值