用 Python 词云图让所有字大小一致
词云图默认根据词频调整字号——频次高的字大、频次低的字小。但实际场景中(签名墙、姓名拼图、Logo 文字),我们经常需要所有字大小完全一致。
本文教您 4 行核心代码搞定。
一、传统词云的问题
直接用 wordcloud 库生成时,字号由频次决定:
1 | from wordcloud import WordCloud |
结果:’人工智能’ 字最大,’深度学习’ 几乎看不见。
二、4 行核心代码
要让所有字大小一致,关键是手动锁定 min_font_size 和 max_font_size:
1 | freq = {w: 1 for w in words} # ① 所有词频强制设为相同值 |
就这么简单。wordcloud 内部用 min_font_size == max_font_size 时,算出的字号全部等于这个值。
三、完整代码(30 行带 GUI)
1 | import jieba |
四、应用场景
| 场景 | 字号选择 | 颜色 |
|---|---|---|
| 700+ 姓名拼字 | 25~65 | 白字 + 红底 |
| 等字号词云 | 40~80 | 任意彩色 |
| 文字 Logo | 60~120 | 单色 |
| 海报文字 | 80~150 | 渐变 |
五、常见问题
Q: 怎么让字更密?
A: 增大 max_words + 缩小字号。
Q: 中文字体显示为方框?
A: 一定要传 font_path,并用支持中文的字体(PingFang.ttc / 微软雅黑 / Noto Sans CJK)。
Q: 可以导出 SVG 矢量吗?
A: 可以!用 potrace 把 PNG 转 SVG,详情见我们 主页商品区。
六、相关商品
需要现成的”等字号词云”软件?查看我们的 词云图生成器 ¥35:
- 一键导入 TXT / Excel
- 自定义形状、字体、配色
- 4K 高清导出
- 立即购买 →
本文由 小朵科技工作室原创,专注 Python 文本分析工具开发。