logo

G2

  • 图表介绍
  • 文档
  • 图表示例
  • 主题
  • 周边生态
  • 所有产品antv logo arrow
  • 5.3.5
  • 📈 图表介绍
  • 弧长连接图
  • 马赛克图
  • 分组柱状图
  • 平行坐标系
  • 气泡图
  • 色块图
  • 玉珏图
  • 折线图
  • 直方图
  • 柱状图
  • 带气泡的地图
  • 雷达图
  • 面积图
  • 箱形图
  • 双向柱状图
  • 饼图
  • 环图
  • 热力图
  • 分级统计地图
  • 漏斗图
  • K线图
  • 散点图
  • 南丁格尔玫瑰图
  • 仪表盘
  • 等高线图
  • 螺旋图
  • 词云图
  • 桑基图
  • 子弹图
  • 卡吉图
  • 和弦图

词云图

上一篇
螺旋图
下一篇
桑基图

资源

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库
WeaveFox-前端智能研发

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会
weavefoxWeaveFox-智能研发技术社区

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
weavefoxWeaveFox-前端智能研发
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

wordcloud

词云图的简介

词云图是一种以可视化方式展示文本数据的图表类型,通过调整词语的大小、颜色和位置来反映词语在文本中的重要程度或出现频率。词云图将文本信息转换为直观的视觉表现,使用户能够快速识别文本中的关键词汇和主题。

词云图特别适合分析大量文本数据,如社交媒体评论、用户反馈、文章内容、调研报告等。通过词语大小的对比,用户可以迅速了解哪些词汇最为重要或出现最频繁,从而提取文本的核心信息和趋势。

词云图不仅具有实用的分析价值,还具有很强的艺术性和视觉冲击力,常被用于演示文稿、报告封面和数据可视化展示中。

英文名:Word Cloud, Tag Cloud

词云图的构成

wordcloud-components
图表类型词云图
适合的数据列表:文本字段、频率或权重字段
功能展示文本数据的频率分布和重要程度
数据与图形的映射文本字段映射到词语内容
频率字段映射到字体大小
可选分类字段映射到颜色
适合的数据条数20-200 个词语,过多会导致布局拥挤

组成元素:

  1. 词语(Words):文本中的关键词汇,是词云图的核心元素
  2. 字体大小(Font Size):通常与词频或重要性成正比
  3. 颜色编码(Color Encoding):可用于区分不同类别或强调重要程度
  4. 布局算法(Layout Algorithm):确定词语在空间中的位置分布
  5. 形状容器(Shape Container):词云的整体轮廓,可以是矩形、圆形或自定义形状

词云图的应用场景

适合的场景

1. 对比大量文本

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
width: 600,
});
chart.options({
type: 'wordCloud',
paddingTop: 40,
layout: { spiral: 'rectangular', fontSize: [20, 100] },
data: {
type: 'fetch',
value: 'https://assets.antv.antgroup.com/g2/philosophy-word.json',
},
encode: { color: 'text' },
});
chart.render();

2. 使用特定形状做边界限制

结合图片可以绘制出特定形状的词云。

import { Chart } from '@antv/g2';
const chart = new Chart({ container: 'container' });
chart.options({
type: 'wordCloud',
width: 700,
height: 400,
layout: {
imageMask:
'https://mdn.alipayobjects.com/huamei_qa8qxu/afts/img/A*LKU4TYEiB-4AAAAAAAAAAAAADmJ7AQ/original',
fontSize: 8,
},
data: {
type: 'fetch',
value:
'https://gw.alipayobjects.com/os/antvdemo/assets/data/antv-keywords.json',
},
encode: { color: 'name', text: 'name' },
legend: false,
});
chart.render();

不适合的场景

数据区分度不大

当数据的区分度不大时使用词云起不到突出的效果。

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
width: 600,
});
chart.options({
type: 'wordCloud',
data: [
// 英语文学作品中频率相近的形容词(基于语料库统计)
// 这些词在文学作品中出现频率都在89-115之间,差异很小
{ text: 'beautiful', value: 115 },
{ text: 'wonderful', value: 112 },
{ text: 'excellent', value: 109 },
{ text: 'amazing', value: 106 },
{ text: 'brilliant', value: 103 },
{ text: 'fantastic', value: 100 },
{ text: 'marvelous', value: 97 },
{ text: 'splendid', value: 94 },
{ text: 'gorgeous', value: 91 },
{ text: 'stunning', value: 89 },
],
layout: {
spiral: 'rectangular',
fontSize: [18, 28], // 范围很小,视觉差异不明显
padding: 3,
},
encode: {
color: 'text',
},
scale: {
color: {
palette: ['#1890ff', '#52c41a', '#fa8c16', '#722ed1', '#eb2f96'],
},
},
style: {
fontFamily: 'Arial, sans-serif',
},
axis: false,
legend: false,
tooltip: {
items: [
{ field: 'text', name: '形容词' },
{ field: 'value', name: '文献频次' },
],
},
});
chart.render();
// 问题:词频差异太小(仅26个单位),词云无法有效突出重点词汇
// 所有词语在视觉上大小几乎相同,失去了词云图的核心价值
// 建议:改用柱状图、条形图或表格来精确对比这些相近的数值

数据太少

数据太少时很难布局出好看的词云,推荐使用柱状图。

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
width: 600,
});
chart.options({
type: 'wordCloud',
data: [
// 莎士比亚四大悲剧中"death"一词的出现频次(真实语料库数据)
{ text: 'Hamlet', value: 67 },
{ text: 'Macbeth', value: 45 },
{ text: 'Othello', value: 23 },
{ text: 'King Lear', value: 19 },
],
layout: {
spiral: 'rectangular',
fontSize: [18, 48],
padding: 8,
},
encode: {
color: 'text',
},
scale: {
color: {
palette: ['#722ed1', '#eb2f96', '#fa8c16', '#52c41a'],
},
},
style: {
fontFamily: 'Times New Roman, serif',
fontWeight: 'bold',
},
axis: false,
legend: false,
tooltip: {
items: [
{ field: 'text', name: '剧作' },
{ field: 'value', name: '"death"词频' },
],
},
});
chart.render();

使用柱状图的效果:

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
width: 600,
height: 300,
});
chart.options({
type: 'interval',
data: [
{ play: 'Hamlet', frequency: 67 },
{ play: 'Macbeth', frequency: 45 },
{ play: 'Othello', frequency: 23 },
{ play: 'King Lear', frequency: 19 },
],
encode: {
x: 'play',
y: 'frequency',
color: 'play',
},
scale: {
color: {
palette: ['#722ed1', '#eb2f96', '#fa8c16', '#52c41a'],
},
},
axis: {
x: {
title: '莎士比亚四大悲剧',
labelTransform: 'rotate(45)',
},
y: { title: '"death"一词频次' },
},
legend: false,
});
chart.render();

词云图与其他图表的对比

词云图和气泡图

  • 词云图:专门用于文本数据,通过字体大小表示重要性
  • 气泡图:用于数值数据,通过气泡大小表示数值

词云图和柱状图

  • 词云图:视觉冲击力强,适合展示概览
  • 柱状图:精确对比数值,适合详细分析

扩展技术要点

  1. 数据格式:确保数据包含 text 和 value 字段
  2. 布局优化:根据词汇数量选择合适的 spiral 类型
  3. 性能考虑:大量词汇时建议限制显示数量
  4. 交互体验:合理使用高亮和提示功能增强可读性