使用 Python 制作酷炫多彩的 Jenkins 插件词云图
Jenkins 插件名称高频关键词有哪些?一切尽在酷炫多彩的词云图
作为最流行的 CI/CD 工具,Jenkins 的优势之一是其生态强大,而这与其插件体系分不开的。 目前 Jenkins 插件 1500+ (截止2020年06月17日,插件数量为1749)。
近日发现词云比较好玩,于是想着以 Jenkins 插件名称为数据源,形成的词云会是什么样的呢,什么关键字会比较突出呢? 想到就去做,带着问题,带着好奇心,开始了实践之旅~
插件基本字段说明
以 Jenkins 中文本地化插件为例,在 Jenkins 官网插件详情页面可以看出: 其 ID 为 localization-zh-cn,Name 为 Localization: Chinese (Simplified)。
获取所有 Jenkins 插件的名称
如何获取所有 Jenkins 插件的名称呢?这里我想到3种方式,或许还有更多方式:
对比上面的三种方式,插件权限文件中并没有 Name 字段,插件更新中心配置文件相对从插件官网抓取比较简单。 所以计划从 update-center.json 进行解析,其中插件名称在 json 中对应字段为 title。
生成 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个插件对应),其内容截图如下:
生成词云图
这里使用 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 中文社区的 kongfu 为背景图片,生成的词云图如下:
从词云图中可以看出,Pipeline 词频最高,Build、API、Job 次之,紧接着还有 Publisher、Notifier、Trigger、Step、GitHub 等等。
资源说明
所有代码及文件可以在 GitHub/Gitee 仓库找到,如果你也觉得好玩有趣,顺便点个 star 吧,谢谢~
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一张PDF了解JDK9 GC调优秘籍-附PDF下载
简介 今天我们讲讲JDK9中的JVM GC调优参数,JDK9中JVM的参数总共有2142个,其中正式的参数有659个。好像比JDK8中的参数要少一点。 为了方便大家的参考,特意将JDK9中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。 Oracle中的文档 今天这篇文章的内容都是从Oracle JDK9的官方文档中提炼出来的。对于里面的内容的真实性,我不能保证是100%正确的。 有人要问了,官网文档也会有错误? 这个问题要从两个方面说起,第一方面,任何人都会犯错误,虽然官网文档经过了编辑,校验核对然后才发布,但是总会有一些遗漏的地方。 第二,Oracle的文档是有专门的写文档的部门来专门编写的,写文档就是他们的工作,所以,这些文档并不是开发JDK的开发人员编写的,而是和开发JDK不相关的文档编写员编写的。 至于文档写完之后有没有JDK开发人员过目,大家可以自行脑补...... 所以古人说得好,尽信书不如无书。 JDK9中JVM参数的变化 一代新人换旧人,长江后浪推前浪。由来只有新人笑 有谁听到旧人哭。 ...
- 下一篇
WeCube 2.5.0 版本发布,一站式 IT 架构管理和运维管理工具
WeCube简介 微众银行在分布式架构实践的过程中,发现将银行核心系统构建于分布式架构之上,会遇到一些与传统单体应用不同的痛点(例如,服务器增多,部署难度大;调用链长,全链路跟踪困难; 系统复杂,问题定位时间长等),在逐步解决这些痛点的过程中,总结了一套IT管理的方法论和最佳实践,并研发了与之配套的IT管理工具体系。WeCube就是将该套方法论和最佳实践,从微众内部众多IT管理工具体系中提炼出来,整合成一套开箱即用的、开源的、一站式IT架构管理和运维管理工具,主要用于简化分布式架构IT管理,并可以通过插件进行功能扩展。 2.5.0版本Features: WeCube Platform - 增加插件在线升级功能; WeCube Platform - 增加插件数据库升级功能; WeCube Platform - 增加插件最佳实践导入导出; WeCube Platform - 支持平台数据初始化; WeCube Platform - 支持插件首页注入; CMDB Plugin - 增加资源视图/应用视图可视化编辑; CMDB Plugin - 增加应用视图架构查询; Monitor Plug...
相关文章
文章评论
共有0条评论来说两句吧...