文档章节

使用 Python 制作酷炫多彩的 Jenkins 插件词云图

donghui2020
 donghui2020
发布于 06/30 10:03
字数 778
阅读 4.7K
收藏 2

精选30+云产品,助力企业轻松上云!>>>

Jenkins 插件名称高频关键词有哪些?一切尽在酷炫多彩的词云图

jenkins-logo-word-cloud

作为最流行的 CI/CD 工具,Jenkins 的优势之一是其生态强大,而这与其插件体系分不开的。 目前 Jenkins 插件 1500+ (截止2020年06月17日,插件数量为1749)。

近日发现词云比较好玩,于是想着以 Jenkins 插件名称为数据源,形成的词云会是什么样的呢,什么关键字会比较突出呢? 想到就去做,带着问题,带着好奇心,开始了实践之旅~

插件基本字段说明

以 Jenkins 中文本地化插件为例,在 Jenkins 官网插件详情页面可以看出: 其 ID 为 localization-zh-cn,Name 为 Localization: Chinese (Simplified)。

localization-zh-cn

获取所有 Jenkins 插件的名称

如何获取所有 Jenkins 插件的名称呢?这里我想到3种方式,或许还有更多方式:

对比上面的三种方式,插件权限文件中并没有 Name 字段,插件更新中心配置文件相对从插件官网抓取比较简单。 所以计划从 update-center.json 进行解析,其中插件名称在 json 中对应字段为 title。

update-center-json

生成 Jenkins 插件名称文件

读取 update-center.json 中 plugin 的 title 字段,按行写入到 jenkins-plugins.txt 文件,代码如下:

# -*- coding: UTF-8 -*-
import json


if __name__ == "__main__":
    json_obj = json.load(open("update-center.json", "r"))
    plugins_obj = json_obj["plugins"]
    with open("jenkins-plugins.txt", "w") as fw:
        for plugin_name in plugins_obj:
            plugin_obj = plugins_obj[plugin_name]
            print plugin_obj["title"]
            fw.write(plugin_obj["title"].encode('utf-8') + "\n")

jenkins-plugins.txt 文件共有 1749 行(与 Jenkins 1749个插件对应),其内容截图如下:

jenkins-plugins-txt

生成词云图

这里使用 Python 代码生成词云图,词的来源为 jenkins-plugins.txt,代码如下:

# -*- coding: UTF-8 -*-

from wordcloud import WordCloud
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image


def generate_word_cloud_image(background_image):
    # mask
    mask = np.array(Image.open(background_image))

    # generate word cloud
    wc = WordCloud(mask=mask, scale=1.5, mode='RGBA', background_color="white", max_words=2000).generate(text=text)

    # show word cloud
    plt.imshow(wc, interpolation='bilinear')
    plt.axis('off')
    plt.show()

    # save to file
    background_image = str(background_image).split("/")[-1].replace(".png", "")
    wc.to_file("word-cloud-img/" + background_image + '-word-cloud.png')


if __name__ == "__main__":
    with open('jenkins-plugins.txt') as f:
        text = f.read()

        for image_name in ["background-img/kongfu.png", "background-img/jenkins-logo.png"]:
            generate_word_cloud_image(background_image=image_name)

生成的词云图各个关键字以不同大小和比例,绘制出一幅多彩的画卷,感觉很美观、很酷炫!

以 Jenkins logo 为背景图片,生成的词云图如下:

jenkins-logo-word-cloud

以 Jenkins 中文社区的 kongfu 为背景图片,生成的词云图如下:

kongfu-word-cloud

从词云图中可以看出,Pipeline 词频最高,Build、API、Job 次之,紧接着还有 Publisher、Notifier、Trigger、Step、GitHub 等等。

资源说明

所有代码及文件可以在 GitHub/Gitee 仓库找到,如果你也觉得好玩有趣,顺便点个 star 吧,谢谢~

donghui2020

donghui2020

粉丝 57
博文 100
码字总数 50671
作品 2
海淀
其他
私信 提问
加载中
请先登录后再评论。
使用 Python 制作酷炫多彩的 Jenkins 插件词云图

本文首发于:Jenkins 中文社区 作者:Donghui Wang 使用 Python 制作酷炫多彩的 Jenkins 插件词云图 Jenkins 插件名称高频关键词有哪些?一切尽在酷炫多彩的词云图 作为最流行的 CI/CD 工具,...

Jenkins中文社区
06/29
5
0
使用 Python 制作酷炫多彩的 Jenkins 插件词云图

作为最流行的 CI/CD 工具,Jenkins 的优势之一是其生态强大,而这与其插件体系分不开的。目前 Jenkins 插件 1500+ (截止2020年06月17日,插件数量为1749)。 近日发现词云比较好玩,于是想着...

Jenkins中文社区
06/29
0
0
使用 Python 制作酷炫多彩的 Jenkins 插件词云图

作为最流行的 CI/CD 工具,Jenkins 的优势之一是其生态强大,而这与其插件体系分不开的。目前 Jenkins 插件 1500+ (截止2020年06月17日,插件数量为1749)。 近日发现词云比较好玩,于是想着...

Jenkins中文社区
06/29
0
0
备战520|Python花式表白的几种姿势

大家好,520它又要来了 所以今天的主题是粉色的 为了各位秃头程序员不再头疼 本文给大家介绍几种用Python表白的姿势 绝不是画个爱心曲线那么简单~ 、 属于TA的词云 用Python将你们的 聊天记...

Python学习交流
05/16
0
0
词云图的几种制作方法评测,你pick哪款

更多Python数据可视化案例请关注我的公众号:早起Python ======== 前言 大家好,不知道大家会在什么场合使用词云图,对我来说词云图的优点除了它可以展示大量文本数据。从而让读者快速抓住重...

刘早起
04/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

VS code 可以做什么?

编写 markdown VS code 真的是非常好用的Markdown编写工具,我用他来编写Markdown的时间甚至比写代码还要多。比如,我每周写的公众号文章。 相关插件: Markdown Markdown Preview Enhanced...

osc_08vvd847
2分钟前
0
0
OC项目转Swift指南

运行环境:Xcode 11.1 Swift5.0 最近参与的一个项目需要从Objective-C(以下简称OC)转到Swift,期间遇到了一些坑,于是有了这篇总结性的文档。 如果你也有将OC项目Swift化的需求,可以作为参...

osc_p6dyctjv
3分钟前
0
0
A Bug's Life POJ - 2492

A Bug's Life Background Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only inte......

osc_gccs85s0
3分钟前
0
0
Go语言编程 — 项目规范

目录 文章目录 目录 项目布局(Project Layout)规范 程序核心代码目录 /cmd(Command) /pkg(Package) /internal /vendor 常规目录 /configs /init /scripts /build /deployments /test ...

osc_hdksnrrg
4分钟前
0
0
通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序

最近两天在Linux中调试.NET Core应用程序,同时我发现在Linux中调试.NET Core应用程序并不容易。一直习惯在Visual Studio中进行编码和调试。现在我想的是可以简单快速的测试.NET Core应用在L...

osc_jklrr90y
5分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部