Pyhton 词云图小例子

import jieba
import wordcloud
txt="程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行各种运算处理。"
w=wordcloud.WordCloud(width=1000,font_path="C:\Windows\Fonts\AdobeHeitiStd-Regular.otf",height=700)
w.generate(" ".join(jieba.lcut(txt))) #将txt内容分词,建立词云库
w.to_file("computerlanguage.png") #输出词云文本
#图片生成方法一:
from PIL import Image
img = Image.open('computerlanguage.png')
img.show()
#图片生成方法二:
# import matplotlib.pyplot as plt # 图像展示库
# plt.imshow(w) # 显示词云
# plt.axis('off') # 关闭坐标轴
# plt.show() # 显示图像

### 如何用Python绘制词云图 #### 使用 `wordcloud` `matplotlib` 库生成基础词云图 要使用 Python 绘制词云图,通常会依赖于 `wordcloud` 这一专门用于生成词云的库以及 `matplotlib` 来显示图像。以下是基于这些库的一个简单示例: ```python from wordcloud import WordCloud import matplotlib.pyplot as plt text = "重复一些单词 可以形成词云 图像效果 更加直观 显示 文本 数据 中的重要 关键词" wordcloud = WordCloud(font_path="simhei.ttf", width=800, height=400).generate(text) plt.figure(figsize=(10, 5)) plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show() ``` 上述代码片段中,`WordCloud()` 函数被用来创建一个词云对象[^1]。参数 `font_path` 是为了支持中文字符,因为默认情况下该库不支持中文。 --- #### 利用自定义图片作为词云形状 如果希望生成具有特定形状的词云图,则可以通过加载一张 PNG 或 JPG 格式的模板图片并将其转换为 NumPy 数组来实现这一目标。下面是一个例子: ```python from wordcloud import WordCloud import numpy as np from PIL import Image import matplotlib.pyplot as plt background = np.array(Image.open('mask.png')) # 加载遮罩图片 wc = WordCloud(background_color="white", max_words=2000, mask=background, contour_width=3, contour_color='steelblue', font_path="simhei.ttf") wc.generate_from_frequencies({"关键词": 100, "测试": 70}) image_colors = wc.to_array() plt.figure(figsize=[7, 7]) plt.imshow(image_colors, interpolation="bilinear") plt.axis("off") plt.show() ``` 这里引入了额外的功能——通过设置 `mask` 参数让词云按照给定图形轮廓分布;同时还可以调整边界宽度 (`contour_width`) 颜色 (`contour_color`) 提升视觉吸引力[^4]。 --- #### 结合 Pyecharts 创建交互式词云 除了静态方式外,也可以借助第三方框架如 **Pyecharts** 构建动态可点击的 HTML 版本词云。这种方法特别适合在线应用场合或者需要分享成果时采用。 ```python from pyecharts.charts import WordCloud from pyecharts.options import InitOpts data_pairs = [("机器学习", 99), ("人工智能", 88), ("大数据", 77)] chart = ( WordCloud(init_opts=InitOpts(width="600px", height="400px")) .add(series_name="", data_pair=data_pairs, word_size_range=[20, 100], shape="circle") ) chart.render_notebook() # 如果是在 Jupyter Notebook 下运行此命令查看结果 ``` 这段脚本利用 Pyecharts 的灵活性定制化程度高得多,并且允许用户轻松更改主题风格、布局形式等属性[^2]。 --- #### 自定义字体与配色方案 对于追求更高艺术价值的作品来说,可能还需要进一步优化细节部分比如选用合适的字体文件(.ttf/.otf),以及制定个性化的调色板规则。下面是有关这部分操作的具体说明: ```python custom_stopwords = set(STOPWORDS) | {"停止", "词语"} # 添加更多不需要展示出来的词汇到停用列表里去 color_list = ["#"+''.join([random.choice('ABCDEF0123456789') for _ in range(6)]) for i in range(len(data))] def random_color_func(*args,**kwargs): return tuple(map(lambda x:int(x*255),colors.hex2color(random.choice(color_list)))) word_cloud = WordCloud(stopwords=custom_stopwords, color_func=random_color_func,...) ``` 在此基础上,我们还能够定义随机选取的颜色函数来自由控制每项文字填充色彩的效果[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值