Linux 制作词云图的命令行工具——Wordcloud
Linux 制作词云图的命令行工具——Wordcloud
你是否曾在社区或壁纸网站上看到过像下面这样的酷炫壁纸?
我相信许多人都见过这样的壁纸。
在本教程中,我将如何在短时间内制作这样的壁纸和图像。相信我,你不需要 Photoshop 或 GIMP 来完成这些,一切都很简单!
Wordcloud,词云生成器
Wordcloud 是一个用于创建词云图像的 Python 程序。该项目已经存在了很长时间,并且被用作许多其他项目的依赖项。
感谢 Wordcloud 的开发者,我们现在可以生成自己的图片了。
安装 wordcloud
Wordcloud 可以在 Ubuntu 的默认仓库中找到。安装命令是:
1 |
|
这将安装几个软件包,占用一些磁盘空间。所以请注意,下载量可能较大。
Wordcloud 也可以作为 Python 包安装。你可以通过 pip 或 pipx 安装。我更喜欢使用 pipx,以避免一些可能的麻烦。你安装完 pipx 之后,就可以使用以下命令安装 wordcloud:
1 |
|
就这样,你已经安装了 wordcloud,可以使用命令
wordcloud_cli
。
无论哪种方式,确保已安装 matplotlib、pillow 和 numpy。这些可以通过
Ubuntu 仓库中的 python3-matplotlib
和
python3-numpy
包安装。
使用 wordcloud
Wordcloud 提供了许多选项和功能,你可以用它来创建独特的图像。让我们来看看如何使用吧!
在创建所有词云图像之前,你需要准备一些词的集合。通常情况下,你可以将这些词存储在一个文本文件中。其他情况将在下面描述。
使用词语创建一个简单的图片
假设你有 100 个随机词保存在一个名为 words.txt
的文件中。使用以下命令从该文件创建图片:
1 |
|
这将使用给定的词创建一个 400×200 的 PNG 图像。
创建自定义尺寸的图片
现在,假设你使用 ChatGPT 或某些 AI 创建了包含数百个词的文本文件。在这种情况下,较高分辨率的图片显示效果会更好。让我们看看如何创建一张大图!
1 |
|
通过这个命令,它将创建一个高分辨率图像(此例为 1920×1080)。
使用自定义字体
默认情况下,wordcloud 使用 DroidSansMono
字体。如果你需要使用自定义字体创建图片,可以使用 --fontfile
选项。
你需要将字体文件的位置指定给 --fontfile
选项,因此你应手头有所需的文件。
我将使用 Comic Neue 字体来创建图像。你可以从 Google 字体 网站下载字体。
提取下载到的压缩文件,并将特定的字体文件放在一个容易访问的位置。
现在,运行命令:
1 |
|
现在,你有了一张使用自定义字体的词云图片!
自定义背景颜色
如果你不喜欢黑色背景?不用担心,你可以应用不同的颜色。
Wordcloud 支持多种颜色格式。你可以点击这里查看支持的颜色格式,并根据需要使用。
我使用的是 Nord 风格的背景颜色,所以使用以下命令:
1 |
|
使用遮罩图像
如果你想在特定框架内打印图像,wordcloud 也可以做到这一点。
首先,创建一个你想使用的框架的黑色图像。在这里,我使用一只黑色企鹅的图像作为框架。
现在,使用 --mask
选项获取遮罩图像。
1 |
|
请记住,遮罩图像的宽度应与所需的最终图像分辨率相同。
使用预构建的示例
项目页面上有几个可用的示例。点击下方按钮查看这些示例。
在这里,你可以点击某个特定设计,并下载相应的 Python 脚本。
脚本下载后,你可以按照脚本中的命名重命名词文件。如果你使用了遮罩,也相应重命名遮罩文件。
例如,我使用的是 这个示例,其中词文件叫
alice.txt
,遮罩文件叫
alice_mask.png
。所以,我将我的 words.txt 重命名为
alice.txt,并将遮罩图像重命名为
alice_mask.png。这样比在脚本内重命名变量和项目更方便。
现在,我使用以下命令:
1 |
|
这将生成一个名为 alice.png 的图像,这是我需要的结果。
可能的图像创意
你可以创建独一无二的图像。让我们看看一些示例:
已安装的软件包
如果你使用的是基于 Debian/Ubuntu 的发行版,可以列出系统中已安装的软件包,并将其保存为文本文件。
1 |
|
现在,使用这个 packages.txt
创建一个列出你已安装软件包名称的壁纸。
你的 bash 命令历史 ;)
如果你愿意公开你的 bash 历史记录,可以将所有命令保存到一个文本文件中,然后用它来创建图像。
1 |
|
其他创意
- 列出一些你永远不会忘记的程序名称,并用它们创建一个壁纸。
- 使用 AI 工具生成随机词列表。
- 列出所有的 Linux 发行版名称。
总结
虽然 wordcloud 提供了许多命令行选项,但它通常作为其他 Python 项目的依赖项使用。为此,你可以查阅 API 参考。
其中一个项目是 Process-wallpaper。该项目本身有点旧了,所以不会自动应用壁纸。但它确实能够创建一个基于系统中当前占用资源最多的进程的壁纸。
类似地,你可能想使用这个便捷的命令行工具 将图像转换为 ASCII 艺术: