基于Pyecharts 的生成“词云”的程序脚本【Akali WordCloud】

基于Pyecharts 的生成“词云”的程序脚本【Akali WordCloud】_第1张图片

  • 简单玩玩
    • 1. 思路介绍
    • 2. 找到两个txt 文档
    • 3. 加载配置文件中信息
    • 4. 读取词条文件中信息
    • 5. 构建词云图
  • 使用说明


简单玩玩

文末可以直接下载程序文件噢~~
在这里插入图片描述

1. 思路介绍

本程序基于pyecharts 模块,对其功能做了一个封装,使得用户无需了解pyecharts 相关细节也可以制作出精美的词云。

  1. 为了达到简明易用的目的,我让用户的词条信息不用通过程序代码进行录入。而是记录在txt 文档上,然后让程序读取该txt 文档信息,自动将词条信息载入程序、生成词云图;
  2. 并且,由于词云图有着大量的自定义配置,包括各个词条的大小范围、旋转角度、词云形状等。所以对于配置信息的录入,我采用了和录入词条信息同样的方法,即也是通过txt 文档载入配置信息。

如此一来,用户只需要修改两个txt 文档,即可对整个词云图进行丰富的自定义设计。
在这里插入图片描述

2. 找到两个txt 文档

如上所述,根据我上一篇文章:《你的Python 程序那么多设置项,为何不制作一个配置文件!》

要想让程序找到两个分别对应词条信息配置信息的txt 文档,首先肯定是要获取到当前程序文件的路径,然后再通过路径找到那两个txt 文件。我就让两个txt 文件分别命名为【词条.txt】和【配置.txt】。
若其与程序属同一目录,则其路径分别为程序路径\词条.txt程序路径\配置.txt

代码实现如下:

#==================== 各个文件的路径 ====================
# 当前文件夹路径
FOLDER_PATH = os.path.dirname(os.path.abspath(__file__))
# 配置文件路径
Config_PATH = FOLDER_PATH + "\\配置.txt"
# 词云数据路径
WordCloud_DATA_PATH = FOLDER_PATH + "\\词条.txt"
# 生成词云图路径
WordCloue_PATH = FOLDER_PATH + "\\词云图.html"

在这里插入图片描述

3. 加载配置文件中信息

同样在《你的Python 程序那么多设置项,为何不制作一个配置文件!》中,我们可以知道要想让一个程序把配置文件的配置存储在一个字典中,可以这样写:
(这是配置文件的格式)
基于Pyecharts 的生成“词云”的程序脚本【Akali WordCloud】_第2张图片
(这是读取配置的代码)

#================= 根据配置文件加载配置 =================
Config_f = open(Config_PATH, "r",encoding='utf-8')
Config_data = Config_f.read() # 读取完整数据
Config_f.close()
Vari_dict = {"主标题":"", "副标题":"", "左边间隔":"", "上边间隔":"",\
            "右边间隔":"", "下边间隔":"", "四周间隔":"", "主副标题间隔":"",\
            "词云图轮廓":"","单词字体大小范围":"", "主标题字体大小":"", "副标题字体大小":"",\
            "旋转单词角度":"", "距离左边的距离":"", "距离上边的距离":"",\
            "距离右边的距离":"", "距离下边的距离":"", "词云图的宽度":"", \
            "词云图的高度":"", "是否允许词云图的数据展示在画布范围之外":""}
for i in Vari_dict.keys():
    start=Config_data.find(i)
    Vari_dict[i] = Config_data[start+len(i)+1:Config_data.find("\n", start)]

在这里插入图片描述

4. 读取词条文件中信息

再次根据我另一篇文章:《Python 逐行读取txt 文件并生成列表》中,可知我可以这样进行词条信息的录入:
(这是词条文件的格式)
基于Pyecharts 的生成“词云”的程序脚本【Akali WordCloud】_第3张图片
(这是对应代码)

#===================== 读取文件数据 =====================
txt_tables = []
f = open(WordCloud_DATA_PATH, "r",encoding='utf-8')
line = f.readline() # 读取第一行

while line:
    try:
        txt_data = eval(line) # 可将字符串变为元组
    except Exception as ex:
        print("数据格式错误")
        break
    txt_tables.append(txt_data) # 列表增加
    line = f.readline() # 读取下一行
f.close()

在这里插入图片描述

5. 构建词云图

有了词条信息和配置信息,那么我们就可以直接生成词云图了:

#======================= 构建词云 =======================
(
    WordCloud()
    .add(series_name="WordCloud", # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
        data_pair=txt_tables, # 系列数据项,[(word1, count1), (word2, count2)]
        shape=Vari_dict["词云图轮廓"], # 词云图轮廓,有 'circle', 'cardioid', 'diamond', 'triangle-forward', 'triangle', 'pentagon', 'star' 可选
        word_size_range=eval(Vari_dict["单词字体大小范围"]), # 单词字体大小范围
        rotate_step=eval(Vari_dict["旋转单词角度"]), # 旋转单词角度
        pos_left=eval(Vari_dict["距离左边的距离"]), # 距离左侧的距离
        pos_top=eval(Vari_dict["距离上边的距离"]), # 距离顶部的距离
        pos_right=eval(Vari_dict["距离右边的距离"]), # 距离右侧的距离
        pos_bottom=eval(Vari_dict["距离下边的距离"]), # 距离底部的距离
        width=eval(Vari_dict["词云图的宽度"]), # 词云图的宽度
        height=eval(Vari_dict["词云图的高度"]), # 词云图的高度
        is_draw_out_of_bound=eval(Vari_dict["是否允许词云图的数据展示在画布范围之外"]), # 允许词云图的数据展示在画布范围之外
        )
    .set_global_opts(
        title_opts=opts_.TitleOpts(
            title=(Vari_dict["主标题"]), 
            subtitle=(Vari_dict["副标题"]),
            pos_left=eval(Vari_dict["左边间隔"]),
            pos_right=eval(Vari_dict["右边间隔"]),
            pos_bottom=eval(Vari_dict["下边间隔"]),
            pos_top=eval(Vari_dict["上边间隔"]),
            padding=eval(Vari_dict["四周间隔"]),
            item_gap=eval(Vari_dict["主副标题间隔"]),
            title_textstyle_opts=opts_.TextStyleOpts(font_size=eval(Vari_dict["主标题字体大小"])),
            subtitle_textstyle_opts=opts_.TextStyleOpts(font_size=eval(Vari_dict["副标题字体大小"]))
        ),
        tooltip_opts=opts_.TooltipOpts(is_show=True),
    )
    .render(WordCloue_PATH)
)

效果如下:
基于Pyecharts 的生成“词云”的程序脚本【Akali WordCloud】_第4张图片
在这里插入图片描述

使用说明

我已经将我的程序文件打包上传:
https://download.csdn.net/download/weixin_40973138/12447579

使用也很简单,大家只需要根据自己的需求,修改【词条.txt】和【配置.txt】两个文件的内容即可。
注意

  1. 词条中的括号双引号逗号都是英文输入的,不能是全拼;
  2. 配置中的等号左边的设置名称不要修改,只修改等号右边的对应值即可;
  3. 文件名不要修改;
  4. 文件夹内的文件结构也不要修改,不然程序就找不到对应的词条和配置文档了。

你可能感兴趣的:(Python)