

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用桑基图
使用桑基图

使用桑基图显示从一个类别到另一类别的流程，或从一个阶段到另一阶段的路径。

例如，桑基图可以显示从一个国家/地区移民到另一国家/地区的人数。桑基图表还可以显示网络访问者从公司网站的一个页面转至下一页面的路径，以及期间可能会停留的情况。

## 桑基图的数据


要在 Quick 中创建 Sankey 图，您的数据集应包含一个度量和两个维度（一个维度包含源类别，另一个维度包含目标类别）。

下表是桑基图数据的简单示例。


| 维度（源） | 维度（目标） | 度量（权重） | 
| --- | --- | --- | 
|  A  |  W  |  500  | 
|  A  |  X  |  23  | 
|  A  |  Y  |  147  | 

以下桑基图是在将维度和度量添加到字段井中时创建的，左侧的 A 节点链接到右侧的 W、Y 和 X 节点。节点间每个链接的宽度由“度量（权重）”列中的值确定。节点会自动排序。

要在 Amazon Quick 中创建多级 Sankey 图，您的数据集仍应包含一个度量和两个维度（一个用于源，一个用于目标），但在这种情况下，您的数据值会有所不同。

下表是有两个阶段的多级别桑基图数据的简单示例。


| 维度（源） | 维度（目标） | 度量（权重） | 
| --- | --- | --- | 
|  A  |  W  |  500  | 
|  A  |  X  |  23  | 
|  A  |  Y  |  147  | 
|  W  |  Z  |  300  | 
|  X  |  Z  |  5  | 
|  Y  |  Z  |  50  | 

以下桑基图是在将维度和度量添加到字段井中时创建的。图中，左侧的 A 节点链接到中间的 W、Y 和 X 节点，而 W、Y 和 X 节点则链接到右侧的 Z 节点。节点间每个链接的宽度由“度量（权重）”列中的值确定。

### 使用周期性数据


桑基图使用的数据有时包含周期。例如，假设您正在可视化网站页面之间的用户流量。您可能会发现，进入页面 A 的用户会移动到页面 E，再回到页面 A。整个流程可能类似于 A-E-A-B-A-A-E-A。

当您的数据包含循环时，每个循环中的节点都会在 Quick 中重复。例如，如果您的数据包含流程 A-E-A-B-A-E-A，则会创建以下 Sankey 图。

## 准备桑基图的数据


如果数据集不包含源列或目标列，请准备好要纳入的数据。您可以在创建新数据集或编辑现有数据集时准备好数据。有关创建新数据集并进行准备的更多信息，请参阅[创建数据集](creating-data-sets.md)。有关打开现有数据集以准备数据的更多信息，请参阅[编辑数据集](edit-a-data-set.md)。

以下过程使用示例表（如下所示）来演示如何在 Quick 中为 Sankey 图准备数据。该表包含三列：客户 ID、时间和操作。


| 客户 ID | 时间 | Action | 
| --- | --- | --- | 
|  1  |  9:05 am  |  步骤 1  | 
|  1  |  9:06 am  |  步骤 2  | 
|  1  |  9:08 am  |  步骤 3  | 
|  2  |  11:44 am  |  步骤 1  | 
|  2  |  11:47 am  |  步骤 2  | 
|  2  |  11:48 am  |  步骤 3  | 

要使用此数据在 Quick 中创建 Sankey 图，请先向表中添加源列和目标列。要了解操作方法，请按照以下过程操作。

**向表中添加源列和目标列**

1. 向表添加“步骤编号”列，对每行进行编号或排序。

   有多种方法可以计算“步骤编号”列。如果您的数据源与 SQL 兼容，并且您的数据库支持`ROW_NUMBER`或`RANK`功能，则可以在 Quick 中使用自定义 SQL 对 “步骤编号” 列中的行进行排序。有关在 Quick 中使用自定义 SQL 的更多信息，请参阅[使用 SQL 自定义数据](adding-a-SQL-query.md)。    
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/quick/latest/userguide/sankey-diagram.html)

1. 向表添加“下一行编号”列，其值等于步骤编号加一。

   例如，在表的第一个数据行中，“步骤编号”的值为 1。要计算该行的“下一步编号”的值，请在该值上加 1。

   1 \$1 1 = 2

   在表的第二个数据行中，“步骤编号”的值为 2，因此“下一步编号”的值为 3。

   2 \$1 1 = 3    
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/quick/latest/userguide/sankey-diagram.html)

1. 将表自身联接起来：

   1. **联接类型**选择**内部**。

   1. 对于**联接子句**，请执行以下操作：

      1. 选择**客户 ID** = **客户 ID**

      1. 选择**下一步编号** = **步骤编号**

   联接两个表会为“客户 ID”、“时间”、“操作”、“步骤编号”和“下一步编号”创建两列。联接左侧表中的列为源列。联接右侧表中的列为目标列。

   有关在 Quick 中联接数据的更多信息，请参阅[联接数据](joining-data.md)。

1. （可选）通过重命名列指明源列和目标列。

   以下是示例：

   1. 将左侧的**操作**列重命名为**源**。

   1. 将右侧的**操作 [复制]**列重命名为**目标**。

   1. 将左侧的**时间**列重命名为**开始时间**。

   1. 将右侧的**时间 [复制]**列重命名为**结束时间**。

   数据现已做好可视化的准备。

## 创建桑基图


要创建桑基图，请按照以下过程操作。

**创建桑基图**

1. 在分析屏幕上，选择左侧工具栏上的**可视化**。

1. 在应用程序栏上选择**添加**，然后选择**添加视觉对象**。

1. 在**视觉对象类型**窗格中，选择桑基图的图标。

1. 从视觉对象右上角的菜单上，选择**属性**图标。

1. 在**属性**窗格中，选择**源**或**目标**部分。

### 自定义节点数


要自定义桑基图中显示的节点数，请按照以下过程操作。Quick 最多支持 100 个源/目标节点。

**自定义桑基图中显示的节点数**

1. 在分析页面上，选择要设置格式的桑基图视觉对象。

1. 从视觉对象右上角的菜单中选择**设置视觉对象格式**图标。

1. 在打开的**属性**窗格中，选择**源**或**目标**选项卡。

1. 在**显示的节点数**字段中输入数字。

   图中的节点数将更新为您指定的数字。靠前的节点将自动显示。其余节点则归入**其他**类别。
**注意**  
指定源节点的数量可以控制图中可显示的源节点总数。指定目标节点的数量可以控制每个源节点可显示的目标节点数。这表示，如果图中有多个源节点，则目标节点的总数将大于指定的数量。  
Quick 最多支持 100 个源/目标节点。

   例如，以下桑基图的源节点数限制为三个（共五个），因此图中显示了前三个源节点。另外两个源节点归入“其他”类别。

   要从图中移除**其他**类别，请在视图中将其选中，然后选择**隐藏“其他”类别**。

## 桑基图的功能


要了解桑基图支持的功能，请参考下表内容。


| 功能 | 支持？ | 有关更多信息 | 
| --- | --- | --- | 
| 更改图例显示 | 否 |  | 
| 更改标题显示 | 是 | [Quick 中视觉类型上的标题和字幕](customizing-a-visual-title.md) | 
| 更改轴范围 | 否 |  | 
| 改变视觉对象颜色 | 否 |  | 
| 聚焦或排除元素 | 是 |  [聚焦视觉对象元素](focusing-on-visual-elements.md) [排除视觉对象元素](excluding-visual-elements.md)  | 
| 排序 | 否 |  | 
| 执行字段聚合 | 是 | [更改字段聚合](changing-field-aggregation.md) | 
| 添加向下钻取 | 否 |  | 
| 条件格式设置 | 否 |  | 