Linux 制作词云图的命令行工具——Wordcloud

Linux 制作词云图的命令行工具——Wordcloud

本文翻译自 https://itsfoss.com/wordcloud/

你是否曾在社区或壁纸网站上看到过像下面这样的酷炫壁纸?

示例词云壁纸

我相信许多人都见过这样的壁纸。

在本教程中,我将如何在短时间内制作这样的壁纸和图像。相信我,你不需要 Photoshop 或 GIMP 来完成这些,一切都很简单!

Wordcloud,词云生成器

Wordcloud 是一个用于创建词云图像的 Python 程序。该项目已经存在了很长时间,并且被用作许多其他项目的依赖项。

感谢 Wordcloud 的开发者,我们现在可以生成自己的图片了。

安装 wordcloud

Wordcloud 可以在 Ubuntu 的默认仓库中找到。安装命令是:

1
sudo apt install python3-wordcloud

这将安装几个软件包,占用一些磁盘空间。所以请注意,下载量可能较大。

Wordcloud 也可以作为 Python 包安装。你可以通过 pip 或 pipx 安装。我更喜欢使用 pipx,以避免一些可能的麻烦。你安装完 pipx 之后,就可以使用以下命令安装 wordcloud:

1
pipx install wordcloud

就这样,你已经安装了 wordcloud,可以使用命令 wordcloud_cli

无论哪种方式,确保已安装 matplotlib、pillow 和 numpy。这些可以通过 Ubuntu 仓库中的 python3-matplotlibpython3-numpy 包安装。

使用 wordcloud

Wordcloud 提供了许多选项和功能,你可以用它来创建独特的图像。让我们来看看如何使用吧!

在创建所有词云图像之前,你需要准备一些词的集合。通常情况下,你可以将这些词存储在一个文本文件中。其他情况将在下面描述。

使用词语创建一个简单的图片

假设你有 100 个随机词保存在一个名为 words.txt 的文件中。使用以下命令从该文件创建图片:

1
wordcloud_cli --text </path/to/words.txt> --imagefile wallpaper.png

这将使用给定的词创建一个 400×200 的 PNG 图像。

创建自定义尺寸的图片

现在,假设你使用 ChatGPT 或某些 AI 创建了包含数百个词的文本文件。在这种情况下,较高分辨率的图片显示效果会更好。让我们看看如何创建一张大图!

1
wordcloud_cli --text </path/to/words.txt> --width 1920 --height 1080 --imagefile highres.png

通过这个命令,它将创建一个高分辨率图像(此例为 1920×1080)。

使用自定义字体

默认情况下,wordcloud 使用 DroidSansMono 字体。如果你需要使用自定义字体创建图片,可以使用 --fontfile 选项。

你需要将字体文件的位置指定给 --fontfile 选项,因此你应手头有所需的文件。

我将使用 Comic Neue 字体来创建图像。你可以从 Google 字体 网站下载字体。

提取下载到的压缩文件,并将特定的字体文件放在一个容易访问的位置。

现在,运行命令:

1
wordcloud_cli --text </path/to/words.txt> --width 800 --height 400 --fontfile </path/to/font/file> --imagefile customfont.png

现在,你有了一张使用自定义字体的词云图片!

自定义背景颜色

如果你不喜欢黑色背景?不用担心,你可以应用不同的颜色。

Wordcloud 支持多种颜色格式。你可以点击这里查看支持的颜色格式,并根据需要使用。

我使用的是 Nord 风格的背景颜色,所以使用以下命令:

1
wordcloud_cli --text </path/to/words.txt> --background '#313744' --imagefile nord-background.png

使用遮罩图像

如果你想在特定框架内打印图像,wordcloud 也可以做到这一点。

首先,创建一个你想使用的框架的黑色图像。在这里,我使用一只黑色企鹅的图像作为框架。

现在,使用 --mask 选项获取遮罩图像。

1
wordcloud_cli --text </path/to/words.txt> --mask </path/to/mask/image> --imagefile maskedimage.png

请记住,遮罩图像的宽度应与所需的最终图像分辨率相同。

使用预构建的示例

项目页面上有几个可用的示例。点击下方按钮查看这些示例。

查看示例

在这里,你可以点击某个特定设计,并下载相应的 Python 脚本。

脚本下载后,你可以按照脚本中的命名重命名词文件。如果你使用了遮罩,也相应重命名遮罩文件。

例如,我使用的是 这个示例,其中词文件叫 alice.txt,遮罩文件叫 alice_mask.png。所以,我将我的 words.txt 重命名为 alice.txt,并将遮罩图像重命名为 alice_mask.png。这样比在脚本内重命名变量和项目更方便。

现在,我使用以下命令:

1
python3 masked.py

这将生成一个名为 alice.png 的图像,这是我需要的结果。

可能的图像创意

你可以创建独一无二的图像。让我们看看一些示例:

已安装的软件包

如果你使用的是基于 Debian/Ubuntu 的发行版,可以列出系统中已安装的软件包,并将其保存为文本文件。

1
dpkg --get-selections > packages.txt

现在,使用这个 packages.txt 创建一个列出你已安装软件包名称的壁纸。

你的 bash 命令历史 ;)

如果你愿意公开你的 bash 历史记录,可以将所有命令保存到一个文本文件中,然后用它来创建图像。

1
history > my_bash_history.txt

其他创意

  • 列出一些你永远不会忘记的程序名称,并用它们创建一个壁纸。
  • 使用 AI 工具生成随机词列表。
  • 列出所有的 Linux 发行版名称。

总结

虽然 wordcloud 提供了许多命令行选项,但它通常作为其他 Python 项目的依赖项使用。为此,你可以查阅 API 参考

其中一个项目是 Process-wallpaper。该项目本身有点旧了,所以不会自动应用壁纸。但它确实能够创建一个基于系统中当前占用资源最多的进程的壁纸。

类似地,你可能想使用这个便捷的命令行工具 将图像转换为 ASCII 艺术


Linux 制作词云图的命令行工具——Wordcloud
https://lixuannan.github.io/posts/47040.html
作者
CodingCow Lee
发布于
2024年10月26日
许可协议