Python使用WordCloud和jieba生成中文词云图完整代码与参数详解
本文介绍利用Python的WordCloud与jieba库生成中文词云图的完整代码。重点讲解如何通过背景图控制词云形状、调整字体路径避免乱码、设置最大词汇量及字号等关键参数。提供可直接运行的示例代码,帮助用户快速掌握词云可视化的核心技巧与注意事项。
本文详细演示了如何使用Python代码生成词云图,内容包含完整的示例代码,对希望学习数据可视化或进行文本分析的用户具有较高的参考价值。
词云效果展示
最终生成的词云效果展示如下。

实现该效果所需的完整Python代码如下。
Python实现代码
from wordcloud import WordCloud
import codecs
import jieba
#import jieba.analyse as analyse
from scipy.misc import imread
import os
from os import path
import matplotlib.pyplot as plt
from PIL import Image, ImageDraw, ImageFont
# 绘制词云
def draw_wordcloud():
#读入一个txt文件
comment_text = open('data.txt','r',encoding='utf-8').read()
#结巴分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云
cut_text = " ".join(jieba.cut(comment_text))
d = path.dirname(__file__) # 当前文件文件夹所在目录
color_mask = imread("bilibili.jpg") # 读取背景图片
cloud = WordCloud(
#设置字体,不指定就会出现乱码
font_path="C:/Windows/Fonts/STXINGKA.TTF",
#font_path=path.join(d,'simsun.ttc'),
#设置背景色
background_color='white',
#词云形状
mask=color_mask,
#允许最大词汇
max_words=2000,
#最大号字体
max_font_size=100
)
word_cloud = cloud.generate(cut_text) # 产生词云
word_cloud.to_file("bilibilirankword.jpg") #保存图片
# 显示词云图片
plt.imshow(word_cloud)
plt.axis('off')
plt.show()
if __name__ == '__main__':
draw_wordcloud()
关键步骤与注意事项
在编写代码时,需注意以下几个关键步骤和细节设置。
首先,必须导入所需的Python库,包括用于分词的jieba、处理图像的PIL和matplotlib,以及核心词云生成库WordCloud。
词云的形状和分布将严格遵循提供的背景图片轮廓,因此背景图的选择直接决定了词云的最终视觉形态。
背景图片的质量对效果至关重要,建议选用尺寸较大且图案相对简单的图片,过于复杂的纹理可能导致词云显示异常。
若生成的词云字号过小,可以通过调整字体文件路径或更换更清晰的背景图片来优化显示效果。
代码中font_path参数需指定系统字体库路径,Windows用户可直接使用示例中的路径,若使用其他字体文件,需确保路径正确。
若未正确指定中文字体路径,词云可能无法正确显示中文内容,建议直接使用文中提供的字体路径以确保兼容性。
以上即为Python生成词云图的完整实现过程,希望能为读者的学习与工作提供有效帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













