在 Tableau 中创建显示起点和终点之间的路径的地图
您可以在 Tableau Desktop 中创建地图,以显示起点和终点之间的路径。这些类型的地图称为蜘蛛图或起点-终点图。
当您要使用中心连接到周围的许多点时,非常适合使用蜘蛛图。这些图是显示起点和一个或多个终点位置之间的路径的绝佳方法。
可以通过多种方式在 Tableau 中创建蜘蛛图。本主题使用两个示例说明如何创建蜘蛛图。请按照本主题中的示例了解如何设置数据源并为两个不同的蜘蛛图构建视图。
有关可能更适合您的数据的其他示例,请参见 Tableau Public 上的以下工作簿:
Recruitment Strategies in the English Premier League(英超联赛的招聘策略)(链接在新窗口中打开)
2014 U.S. Flight Departure Delays(2014 年美国航班起飞延误情况)(链接在新窗口中打开)
注意:在以下示例中,数据源中的点都有唯一的路径 ID,并且都位于不同的行上。如果源数据和目标数据位于同一行,可以使用 MAKELINE 函数在两个空间点之间生成线标记。请参见使用 MAKELINE 创建可视化项。
示例 1:法国巴黎地铁车站交通量
设置数据源
若要在 Tableau 中创建此类型的蜘蛛图,您的数据源应包括以下信息:
- 每个唯一路径的路径 ID。有关详细信息,请参见以下“线路组(路径 ID)”列。
- 用于定义每个数据点(位置)的绘制顺序的数字。有关详细信息,请参见以下“点顺序”列。
- 每个位置的纬度和经度坐标。请参见下面的示例表格。
- 包含您的位置名称的列(推荐,但不是必需)。
下表是 Transports(交通)数据源的一个片段,它包含在 Tableau Public 上的“在 Tableau 中创建蜘蛛图”示例 1 工作簿(链接在新窗口中打开)中。它包含法国巴黎所有地铁线的地铁交通量数据。此示例中包括两条地铁线的前三个地铁站,并且它包含所需的“线路组(路径 ID)”、“点顺序”、“纬度”和“经度”列。它还包含以下其他列:“线路”、“车站”和“交通量”,以便更加清晰和更有组织性,但构建地图视图不需要这些列。
线 | 线路组(路径 ID) | 点顺序 | Station | 纬度 | 经度 | 交通量 |
1 | 1 | 1 | 法国拉德芳斯区(新凯旋门) | 48.891934 | 2.237883 | 14,275,382 |
1 | 1 | 2 | 保防广场 | 48.887843 | 2.250442 | 9,843,051 |
1 | 1 | 3 | 讷伊桥 | 48.884509 | 2.259892 | 6,902,931 |
10 BOUCLE | 10 | 1 | 布洛涅-让-饶勒斯 | 48.842222 | 2.238836 | 3,847,782 |
10 BOUCLE | 10 | 2 | 奥特伊门 | 48.848074 | 2.258648 | 687,237 |
10 BOUCLE | 10 | 3 | 米歇尔-安热-奥特伊 | 48.847740 | 2.264297 | 2,222,709 |
对于每个路径,都存在已添加到该路径的每个位置中的唯一键或字符串。
在此示例中,“线路组(路径 ID)”列用于标识每个唯一路径。您将使用此列来创建蛛网图。
例如,在上表中,存在两条地铁线(1 号线和 10 Boucle ),并且这些地铁线中的每一条都具有“线路组(路径 ID)”列中列出的唯一路径 ID。对于 1 号地铁线,线路组为 1。对于 10 Boucle 地铁线,线路组为 10。线路一中的每个位置均包含线路组 1,线路 10 Boucle 中的每个位置均包含线路组 10。
此列定义点顺序以及在地图上从第一个数据点向最后一个数据点画线的方向,在此示例中这两个数据点是指地铁线的起点和终点。如果路径中有两个以上的位置,则此字段非常重要,因为它会按所需顺序画出路径(您可以将其视为将点连接在一起)。
在上面的示例表中,线路 1 上有三个站点。“点顺序”列中使用数字 1 到 3 按照从“法国拉德芳斯区(新凯旋门)”到“讷伊桥”的顺序列出了这三个站点。线路 10 Boucle 也是如此。
基本地图组件:
“列”功能区: | 经度(连续度量,分配的经度地理角色) |
“行”功能区: | 纬度(连续度量,分配的纬度地理角色) |
详细信息: | “路径 ID”字段(离散维度) |
路径: | “Order”(订单)字段(连续维度) |
标记类型: | 线 |
构建地图视图
若要按照此示例执行操作,请从 Tableau Public 中下载“在 Tableau 中创建蜘蛛图”示例 1 工作簿(链接在新窗口中打开),然后在 Tableau Desktop 中将其打开。
在“在 Tableau 中创建蜘蛛图”示例工作簿中,单击“新建工作表”图标。
在新工作表中,从“度量”中将“经度”拖到“列”功能区,并将“纬度”拖到“行”功能区。
从“数据”窗格中,将“线路组(路径 ID)”拖到“标记”卡上的“详细信息”。
在“标记”卡上,单击“标记类型”下拉列表,然后选择“线”。
此时会使用连接所有点的线来更新地图视图。“路径”按钮应该会出现在“标记”卡上。
从“数据”窗格中,将“点顺序”拖到“标记”卡上的“路径”。
“点顺序”会聚合为总计。
在“标记”卡上,右键单击“SUM(Point Order)”字段,然后选择“维度”。
此时会用每条地铁线的线条来更新地图视图。
从“数据”窗格中,将“线路组(路径 ID)”拖到“标记”卡上的“颜色”。
每条线现在都有自己的关联颜色,并且颜色图例会添加到视图中。
从“数据”窗格中,将“经度”拖到“列”功能区,并将其放在第一个“经度”字段的右侧。
列功能区上现在有两个“经度”字段。视图会使用两个相同的地图进行更新。“标记”卡会使用两个选项卡进行更新:一个选项卡用于左侧的地图,一个选项卡用于右侧的地图。您可以自定义每个选项卡以更改每个地图视图的视觉细节。有一个可同时在这两个地图中控制视觉细节的“全部”选项卡。
在“标记”卡上,单击底部的“AVG(Longitude) (2)”选项卡。
在“标记”卡上的“AVG(Longitude)”选项卡下面,单击“标记类型”下拉列表并选择“自动”。
右侧的地图视图会更新为点位图。
在“列”功能区上,右键单击第二个“AVG (Longitude)”字段(在右侧),并选择“双轴”。
您的地图视图现在将以叠加的方式分层。
从“数据”窗格中,将“交通量”拖到底部 AVG (Longitude)“标记”卡的“大小”上。
数据点的大小会进行更新以显示每个车站的交通量。
在“标记”卡上单击“大小”,然后向右拖动滑块。
在“标记”卡上,单击“颜色”,然后在“效果”下面,单击“边框”下拉列表并选择颜色。
视图现在已完成。您可以快速找到每个地铁线上交通量最大的车站。
筛选视图中的信息量
如果想要筛选视图中显示的线路数:
从“数据”窗格中,将“线路组”拖到“筛选器”功能区。
您也可以右键单击“线路组”字段并选择“显示筛选器”以在视图中显示筛选器卡。
示例 2:西雅图、华盛顿中的自行车共享数据
设置数据源
与第一个示例类似,对于此类型的蜘蛛图,您的数据源应包含以下信息:
- 每个唯一路径的路径 ID。有关详细信息,请参见以下“路径 ID”列。
- 每个位置的纬度和经度坐标。请参见下面的示例表格。
- 每个路径在数据源中占两行。您应该为每个路径复制一行起点位置数据和一行终点位置数据。这是一个使 Tableau 能够正确绘制您的路径的关键性步骤。有关详细信息,请参见以下起点-终点行。
- 包含您的位置名称的列(推荐,但不是必需)。
此示例是 Seattle bike share(西雅图自行车共享)数据源的一个片段,它包含在“在 Tableau 中创建蜘蛛图”示例 2 工作簿(链接在新窗口中打开)中。它具有“起点-终点”、“车站”、“路径 ID”、“纬度”和“经度”列。创建一个蜘蛛图只需要此数据源中的最后三个列,但是“起点-终点”和“位置名称”列能够增加清晰度和组织性。
Origin-Destination | Station | Path ID | 纬度 | 经度 |
Origin | BT-01 | BT-01_BT-01 | 47.61841 | -122.35101 |
Destination | BT-01 | BT-01_BT-01 | 47.61841 | -122.35101 |
Origin | BT-01 | BT-01_BT-03 | 47.61841 | -122.35101 |
Destination | BT-03 | BT-01_BT-03 | 47.61576 | -122.34843 |
Origin | BT-01 | BT-01_BT-04 | 47.61841 | -122.35101 |
Destination | BT-04 | BT-01_BT-04 | 47.61613 | -122.34108 |
Origin | BT-01 | BT-01_BT-05 | 47.61841 | -122.35101 |
Destination | BT-05 | BT-01_BT-05 | 47.61303 | -122.34410 |
对于要创建的每个唯一路径,数据源中都需要一个起点位置行和一个终点位置行。这意味着您的起点位置将与每个终点位置配对。
例如,在显示城市中的自行车共享起点位置和多个终点位置之间的路径时,每个单一路径都需要一个起点位置行和一个终点位置行。
在上面的示例中,起点站 BT-01 与若干不同的终点位置(BT-01、BT-03、BT-04、BT-05)配对,以表明自行车从 BT-01 地点借出并归还到相同地点或不同地点。每个起点-终点对都采用了颜色编码以表明它们构成了一条路径。“起点-终点”列进一步说明了此概念,但此列不是必需的。
“路径 ID”列用于标识每个唯一的起点-终点路径。您将使用此列来创建蛛网图。
对于每个起点和终点位置,都有唯一的键或字符串,用于将它们标识为一对。
在以下示例中,对于第一条起点-终点路径,“路径 ID”为 BT-01_BT-01。对于第二条起点-终点路径,“路径 ID”为 BT-01_BT-03。每个路径 ID 都列出了两次,一次为起点位置列出,一次为终点位置列出。而且,每个对都进行了颜色编码以表明它们构成了一条路径。
Origin-Destination | 位置名称 | Path ID | 纬度 | 经度 |
Origin | BT-01 | BT-01_BT-01 | 47.61841 | -122.35101 |
Destination | BT-01 | BT-01_BT-01 | 47.61841 | -122.35101 |
Origin | BT-01 | BT-01_BT-03 | 47.61841 | -122.35101 |
Destination | BT-03 | BT-01_BT-03 | 47.61576 | -122.34843 |
注意:您的路径 ID 可以是您想要的一切。但是,如果想要创建复杂的计算字段以帮助以后筛选位置,那么当您的路径 ID 在所有路径中都一致的情况下,这很有用。执行此操作的一个好方法是创建由分隔符分隔的起点和终点位置名称组合而成的路径 ID。例如,起点位置 BT-01 和终点位置 BT-03 的“路径 ID”是 BT-01_BT-03。有关您可能希望执行此操作的原因的示例,请参见 选项 2:创建动态筛选器:部分。
基本地图组件:
“列”功能区: | 经度(连续度量,分配的经度地理角色) |
“行”功能区: | 纬度(连续度量,分配的纬度地理角色) |
详细信息: | “路径 ID”字段(离散维度) |
标记类型: | 线 |
构建地图视图
设置数据源后,可以在 Tableau Desktop 中连接到该数据源并构建一个蜘蛛图。若要按照此示例执行操作,请从 Tableau Public 中下载“在 Tableau 中创建蜘蛛图”示例 2 工作簿(链接在新窗口中打开)。
从“数据”窗格中,将“经度”从“度量”拖到“列”功能区,并将“纬度”拖到“行”功能区。
在“列”功能区上,右键单击“经度”字段,并选择“维度”。在“行”功能区上对“纬度”字段执行相同的操作。
这将确保 Tableau 不会聚合您的起点和终点位置。
在“标记”卡上,单击“标记类型”下拉列表,然后选择“线”。视图会进行更新以显示连接每个数据点的线,“标记”卡使用“路径”按钮进行更新。
从“数据”窗格中,将“路径 ID”拖到“标记”卡上的“详细信息”。
您应该会在地图上看到数据点形式的数据源中的所有位置。在此示例中,数据源中的每个自行车共享位置都有一个数据点。
如果您只有几个起点-终点对,则您的视图可能如下所示:
但是,如果您有许多起点-终点对,则您的视图可能看起来更像下面这样:
这是非常常见的情况,可以通过从视图中筛选大部分路径来修复。请转到以下部分继续,以了解执行此操作的几种方法。
筛选视图中的信息量
如果您的数据源包含许多起点-终点对,则您可以从视图中筛选其中大部分对。
选项 1:创建一个简单的筛选器:
从“数据”窗格中,将“路径 ID”拖到“筛选器”功能区。
在打开的“筛选器”对话框中,执行以下操作:
在“常规”选项卡下,选择“无”。
单击“通配符”选项卡。
在“通配符”选项卡下,为“匹配值”输入 BT-01,然后单击“开头为”。
单击“确定”。
这会筛选视图以仅显示以 BT-01 开头的路径。
您也可以创建计算字段,并将其与参数合并,以便您可以在想要直接在视图中查看的路径之间切换。执行下面的步骤以了解如何操作。
步骤 1:创建参数
在“数据”窗格上,单击“数据”窗格下拉列表,然后选择“创建参数”。
在“创建参数”对话框中,执行以下操作:
将参数命名为“StationSelected”。
对于“数据类型”,选择“字符串”
对于“允许的值”,单击“列表”,选择“从字段中添加”,然后选择“位置名称”字段。
单击“确定”。
步骤 2:创建计算字段
选择“分析”>“创建计算字段”。
在计算编辑器中,将计算字段命名为“Select by Origin-Destination”(按起点-终点进行选择),然后输入以下公式:
IF
LEFT([Path ID], FIND([Path ID], "_") -1) = [StationSelected] THEN "Origin"
ELSEIF
RIGHT([Path ID], LEN([Path ID]) - FIND([Path ID], "_")) = [StationSelected] THEN "Destination"
ELSE
"Unselected stations"
END在上表中,每个路径 ID(例如 BT-01_BT-03)都包含下划线 (_) 作为分隔符,用于将起点位置名称 (BT-01) 与终点位置名称 (BT-03) 隔开。此分隔符在公式中用于告诉 Tableau 哪些位置(已在此过程的步骤 1 中创建的参数中进行了选择)是起点位置,哪些是终点位置。此公式中也使用了您在上面创建的参数 (StationSelected)。
检查计算是否有效,然后单击“确定”。
步骤 3:将此计算字段添加至“筛选器”功能区
从“数据”窗格中,将计算字段拖到“筛选器”功能区。
在“筛选器”对话框中,选择“起点”,然后单击“确定”。
步骤 4:显示参数控件
在“数据”窗格中,右键单击所创建的参数,然后选择“显示参数控件”。
现在,您可以从视图内的参数控件中选择起点,地图视图上的标记将会进行更新。
另请参见:
Tableau 社区博文:起点-终点地图(或流线图)(链接在新窗口中打开)