【GitHub】推荐一款功能强大的词云工具,支持更改形状和背景色、自定义风格、颜色流动…
![](http://static.careerengine.us/api/aov2/http%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_KdayOo3PqHDk6l9g2es43OibuuB0e8Wc9CshZmxVRxDvVaIgkarlwmTTBnVk8wpkC5TAL7KEmYVGTpFwiaY1DVLg_%7C_0%3Fwx_fmt%3Djpeg.jpg)
选自Github
stylecloud 是一个 Python 包,它基于流行的 word_cloud 包,并添加了一些有用的功能,从而创建出独特的词云。stylecloud 具备以下特点:
- 为词云提供(任意大小)的图标形状(通过 Font Awesome 5.11.2 获得);
- 支持高级调色板(通过 palettable 实现);
- 为上述调色板提供直接梯度;
- 支持读取文本文件,或预生成的 CSV 文件(包含单词和数字);
- 提供命令行接口。
stylecloud 包由数据科学家 Max Woolf 创建,是对其 2016 年风格化词云项目的较正式实现。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_KmXPKA19gW8UrVXZNRhefEZBhibGOKG8mNm7qPEU67hJvBfzViaI4q5Gwf9E85YhkoBaOho5nCdrjrCSFz744jTQ_%7C_640%3Fwx_fmt%3Djpeg.jpg)
stylecloud 项目地址:https://github.com/minimaxir/stylecloud
安装
你可以通过 pip 安装 stylecloud:
pip3 install stylecloud
使用
你可以通过 Python 脚本使用 stylecloud,也可以直接使用独立的 CLI app。假如你有一份美国宪法的文本文件 constitution.txt。
使用以下 Python 脚本:
import stylecloud
stylecloud.gen_stylecloud(file_path= constitution.txt )
得到如下词云:
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_KmXPKA19gW8UrVXZNRhefEZBhibGOKG8mEULVlRFxhJOf3YZ76STBQdbTkwS8nriaEpkP8GkBriaLzI6lR6Dmtib0A_%7C_640%3Fwx_fmt%3Dpng.jpg)
但你可以做到更多!比如使用 Font Awesome 提供的免费图标更改词云的形状,通过 palettable 更改调色板以自定义风格,更改背景颜色,以及最重要的,添加梯度使颜色按照特定方向流动。
import stylecloud
stylecloud.gen_stylecloud(file_path= constitution.txt ,
icon_name= fas fa-dog ,
palette= colorbrewer.diverging.Spectral_11 ,
background_color= black ,
gradient= horizontal )
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_KmXPKA19gW8UrVXZNRhefEZBhibGOKG8mnEiczM26JW5AbpRJd38ED6d93K5eoEqcMoEqAj0gh84vfXvVV6XiaXvA_%7C_640%3Fwx_fmt%3Dpng.jpg)
你还可以使用 CLI 执行更快速的 stylecloud 生成!对于上文中的旗形 stylecloud,使用:
stylecloud--file_pathconstitution.txt
对于更复杂的犬形 stylecloud,使用:
stylecloud --file_path constitution.txt --icon_name fas fa-dog --palette colorbrewer.diverging.Spectral_11 --background_color black --gradient horizontal
你可以在 stylecloud-examples repo 中查看 stylecloud 的更多示例,比如如何基于 Twitter 和 Reddit 数据制作 stylecloud。
地址:https://github.com/minimaxir/stylecloud-examples
有用的参数
以下参数对 stylecloud Python 函数和 CLI 均有效,你可以通过 stylecloud -h 获取这些参数的信息。
- text:输入文本。最好在直接调用函数时使用。
- file_path:输入文本/CSV 的文件路径。最好在 CLI 上使用。
- gradient:梯度方向。(其默认值是 None,如果它的值不是 None,则 stylecloud 使用了方向性梯度。)[default: None]
- size:stylecloud 的大小(长度和宽度)。[default: 512]
- icon_name:stylecloud 形状的图标名称(如 fas fa-grin)。[default: fas fa-flag]
- palette:调色板(通过 palettable 实现)。[default: cartocolors.qualitative.Bold_6]
- background_color:背景颜色。[default: white]
- max_font_size:stylecloud 中的最大字号。[default: 200]
- max_words:stylecloud 可包含的最大单词数。[default: 2000]
- stopwords:布尔值,用于筛除常见禁用词。[default: True]
- output_name:stylecloud 的输出文本名。[default: stylecloud.png]
- font_path:stylecloud 所用字体 .ttf 文件的路径。[default: uses included Staatliches font]
- random_state:控制单词和颜色的随机状态。
小贴士
stylecloud 的主要目标是为文本数据可视化结果提供独特的美感。词云强调统计上可靠的数据可视化,而 stylecloud 更注重「酷」!
stylecloud 包独立于 word_cloud 单独发布,因为它的适用范围和 Python 依赖项均有所增长。
生成优秀 stylecloud 需要的完美字体是:加粗/高字重,以提高可读性;紧凑/低间距,以容纳更多文本。这两个特点就是 stylecloud 使用 Staatliches 作为默认字体的原因(而不是 base word_cloud 使用的 Droid Sans 字体)。
- 在生成 stylecloud 后,你可能想做一些后处理:例如添加颜色掩码,添加感知偏移,将 stylecloud 输入风格迁移 AI 模型等等。
- max_font_size 的默认值 200 与 size 的默认值 512 呈正相关,如要增加 size,你还需要考虑增加 max_font_size 的值。
- 由于 stylecloud 内置 Font Awesome 字体文件的大小,它们不会在 Font Awesome 每次小型新发布时进行更新。
- 推荐使用大且重的 Font Awesome 图标,轻图标可能会过度约束文本。
- 如果使用默认随机颜色采样(random-color-sampling)方法,推荐使用 qualitative 调色板。反之,如果使用颜色梯度,推荐使用非 qualitative 调色板(如 sequential 调色板)。
展望
stylecloud 的开发者表示未来将提供以下新功能:
- 支持自定义字体文件(如 Font Awesome Pro);
- 创建一个运行 stylecloud 的 app。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_KdayOo3PqHDIurOfIatYehahcqXDLC7d51EsSdVb7Ulu1bOWmfhtfDYxESJ9uwtcwibicicKicZem0uDo3cFnSRKow_%7C_640%3Fwx_fmt%3Dpng.jpg)
关键词
词云
文件
颜色
调色板
大小
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。