本文主要是介绍python词云图形状修改,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
python词云图形状修改
- 词云图介绍
- wordcloud介绍
- 修改形状参数
- 效果
- 代码
词云图介绍
词云图(Word Cloud)是一种文本数据的可视化表示形式,它通过字体大小、颜色、布局等视觉元素来展示文本中不同词汇的频率或重要性。词云图中,出现频率高的词汇会被赋予较大的字体,从而突出显示;而频率较低的词汇则使用较小的字体。这种可视化方式有助于快速识别文本中的关键信息,发现文本的主题或热点。
wordcloud介绍
wordcloud 是一个用于生成词云图的 Python 库。它基于 PIL(Python Imaging Library)和 NumPy 库,提供了丰富的功能和灵活的参数设置,使得用户可以轻松地生成各种风格的词云图。
修改形状参数
形状参数可以通过mask参数进行设置。
mask_shape = np.array(Image.open("心形.jpg"))
# 创建词云对象,设置词云的一些属性
wordcloud = WordCloud(font_path=font_path, # 设置字体文件路径,确保支持中文background_color="white", # 设置背景颜色mask=mask_shape,max_words=200, # 最多显示的词数max_font_size=100, # 字体最大值random_state=42, # 设置随机种子以获得可重复的结果width=800, height=800, # 设置图片的尺寸margin=2 # 设置词与词之间的距离).generate(words)
效果
默认为矩形:
选择心形图片后:
代码
# 导入必要的库
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba
import numpy as np
from PIL import Image
# 假设你的文本文件名为 'text.txt',并且位于当前工作目录下
file_name = '三国演义.txt'# 读取文件内容
with open(file_name, 'r', encoding='utf-8') as file:text = file.read()# 使用jieba进行中文分词
seg_list = jieba.cut(text, cut_all=False)
words = " ".join(seg_list)# 设置字体文件路径(确保支持中文)
font_path = 'simhei.ttf' # 你需要指定一个支持中文的字体文件路径
mask_shape = np.array(Image.open("心形.jpg"))
# 创建词云对象,设置词云的一些属性
wordcloud = WordCloud(font_path=font_path, # 设置字体文件路径,确保支持中文background_color="white", # 设置背景颜色mask=mask_shape,max_words=200, # 最多显示的词数max_font_size=100, # 字体最大值random_state=42, # 设置随机种子以获得可重复的结果width=800, height=800, # 设置图片的尺寸margin=2 # 设置词与词之间的距离).generate(words)# 使用matplotlib显示词云图
plt.figure(figsize=(8, 8), facecolor=None) # 创建一个8x8的绘图对象
plt.imshow(wordcloud)
plt.axis("off") # 不显示坐标轴
plt.tight_layout(pad=0) # 调整子图参数,使之填充整个图像区域
plt.show() # 显示图像
这篇关于python词云图形状修改的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!