编程学习网 > 编程语言 > Python > 使用python制作简单词云教程
2023
11-28

使用python制作简单词云教程


学习需要统计一些词频,想顺手做个词云,于是重新学习整理了一下。

可以直接使用词频或者使用jieba分词后统计词频再做词云,因为我已经有词频了,所以直接使用的第一种方法,第二种方法在最后一张图。


#导入所需的包
import pandas as pd #用于数据处理和读取 Excel 文件。
from wordcloud import WordCloud #用于生成词云图。
import numpy as np #用于处理数组数据。
from PIL import Image #用于处理图像数据。
#如果您尚未安装这些包,可以使用 pip 命令进行安装。在命令行中执行以下命令:
# pip install pandas wordcloud numpy pillow
# 读取数据文件 数据需要是以下格式:第一行是词语,第二行是代码
df = pd.read_excel(r'C:\Users\admin\Desktop\词云绘制.xlsx')
words = df.columns.tolist()
frequencies = df.iloc[0].tolist()
# 创建词频字典
word_freq = dict(zip(words, frequencies))
# 加载字体文件和词云形状图片
font_path = r"C:\Users\admin\Desktop\simhei.ttf"  # 替换为您的字体文件路径,可以去网上下载,或者在电脑上搜索fonts,看看有没有相关ttf文件
mask_image_path = r"C:\Users\admin\Desktop\词云轮廓.jpg"  #加载词云形状图片作为 mask,即想要词云呈现什么形状
mask_image = Image.open(mask_image_path).convert('L')
mask_array = np.array(mask_image)
wordcloud = WordCloud(
    width=800,
    height=400,
    background_color="white", # 设置词云背景颜色为白色
    font_path=font_path, # 设置词云中的字体样式
    colormap='viridis', # 设置词云颜色方案为viridis,
    max_words=1000, # 词云中显示的最大词语数量
    max_font_size=500, # 设置词云中的最大词语字体大小为500
    scale=10, # 控制词云图像的清晰度,值越大越清晰,但是太大了会报错
    mask=mask_array, # 设置词云的形状为mask
    collocations=True, # 启用词语组合,使词云中的词语能够形成搭配
    prefer_horizontal=0.7  # 控制词云中横排文字的比例,值越大横排文字越多
)
# 根据词频数据生成词云图并保存
wordcloud.generate_from_frequencies(word_freq)
wordcloud.to_file(r'C:\Users\admin\Desktop\wordcloud.png') #默认保存到桌面
提示1:数据需要是以下格式:第一行是词语,第二行是代码

提示2:colormap='viridis'这一行中的词云颜色方案有以下几种:
以下是一些常见的颜色方案的特点解释:
1. 'viridis': 这是一种逐渐变化的颜色方案,从浅绿色到深紫色。它在视觉上有很好的对比度和感知平衡。
2. 'plasma': 这是一种颜色方案,从亮粉红色到深紫色变化。它在视觉上具有高对比度和明亮感。
3. 'inferno': 这是一种颜色方案,从黄色到黑色变化。它在视觉上具有高对比度和明亮感,适合表示温暖和热度。
4. 'magma': 这是一种颜色方案,从浅粉红色到深紫色变化。它在视觉上具有高对比度和渐变效果。
5. 'cividis': 这是一种颜色方案,从黄色到深蓝色变化。它在视觉上具有高对比度和明亮感,适合表示连续性和变化。
6. 'cool': 这是一种颜色方案,从蓝色到紫色变化。它给人一种冷静和科技感的印象,适合表示数字、科技和数据相关的主题。
7. 'coolwarm': 这是一种颜色方案,从蓝色到红色变化,通过冷色和暖色的组合来表示正负变化。
8. 'twilight': 这是一种颜色方案,从深蓝色到淡黄色变化,给人一种神秘和夜晚的感觉。
9. 'twilight_shifted': 这是 'twilight' 颜色方案的偏移版本,从深紫色到浅绿色变化,带有一种幻幽的感觉。
10. 'hsv': 这是一种颜色方案,从红色开始,沿着色相环绕变化。它在视觉上具有鲜艳和多样性。

jieba分词后统计词频再制作词云
#导入所需的包
import pandas as pd #用于数据处理和读取 Excel 文件。
from wordcloud import WordCloud #用于生成词云图。
import numpy as np #用于处理数组数据。
from PIL import Image #用于处理图像数据。
import jieba #用于中文分词。

txt = open(r"C:\Users\admin\Desktop\上海市_2020_名词.txt", encoding= "utf-8").read()
#中文使用utf-8解码,read为全部读取,同类的还有readline()
txt = jieba.lcut(txt) #jieba分词为列表
txt = " ".join(txt) #用空格分隔词语,转化为一个长字符串
stop = [] #设置停止词,如果长度小于等于1,则设置为停止词,例如标点符号和单个字
for i in txt:
    if len(i) <= 1:
        stop.append(i)

# 加载字体文件和词云形状图片
font_path = r"fonts/STXINGKA.TTF"  # 替换为您的字体文件路径,可以去网上下载,或者在电脑上搜索fonts,看看有没有相关ttf文件
mask_image_path = r"C:\Users\admin\Desktop\词云轮廓.jpg"  #加载词云形状图片作为 mask,即想要词云呈现什么形状
mask_image = Image.open(mask_image_path).convert('L')
mask_array = np.array(mask_image)

wordcloud = WordCloud(
    width=800,
    height=400,
    background_color="white", # 设置词云背景颜色为白色
    font_path=font_path, # 设置词云中的字体样式
    colormap='viridis', # 设置词云颜色方案为viridis
    max_words=1000, # 词云中显示的最大词语数量
    max_font_size=500, # 设置词云中的最大词语字体大小为500
    scale=10, # 控制词云图像的清晰度,值越大越清晰
    mask=mask_array, # 设置词云的形状为mask
    collocations=True, # 启用词语组合,使词云中的词语能够形成搭配
    prefer_horizontal=0.7  # 控制词云中横排文字的比例,值越大横排文字越多
)

# 根据词频数据生成词云图并保存
wordcloud.generate(txt)
wordcloud.to_file(r'C:\Users\admin\Desktop\wordcloud.png') #默认保存为桌面

好久没写推送了,这段时间总感觉很忙又没什么成果,偶尔会有一些感触,但没什么动力将其写成完整的东西,也总觉得做作,于是作罢。

以上就是使用python制作简单词云教程的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取