一个图表中的多个数据表
有时候,您要在 Spotfire 中分析的数据位于不同的数据表中。使用合并了多个数据表中数据的图表与使用单个数据表中的数据区别不是很大。您可以选择最适用于您的数据的图表,也可以对数据进行筛选、标记、细分。但是,在配置和使用合并了不同数据表中数据的图表时,有几个概念非常重要。
主数据表
在合并了不同数据表中数据的图表中,主数据表发挥了重要作用。一个图表通常仅包含一个主数据表,它是图表中数据的定位点。它可定义未聚合的图表中“行”的内容,主数据表中的列可用于以不同方式对图表进行分组。因此,主数据表的列控制未聚合图表中项目所表示的含义(如散点图中的标记或条形图中的长条块)。
在图表中标记项目时,详细信息将仅显示在主数据表的列中。主数据表也是所有表达式默认情况下所引用的数据表,除非您明确指出表达式应通过使用有效的列名称 [Data Table Name].[Column Name]
引用图表中的其他数据表。(例如:Sum([Sales Previous Year].[Sales])
,其中“上一年的销售额”是数据表名称,而“销售额”是列名称。)
为了充分利用数据,请在开始配置图表之前考虑哪个数据表最适合作为主数据表。
您可以在“图表属性”的“数据”部分或在图例中的数据表选择器中选择主数据表(如果图例中显示选择器)。在下图中,主数据表名称为“销售额 2017”:

其他数据表
其他数据表(而非主数据表)中的列可用于图表中的聚合轴,但对图表进行分组的轴除外。
要从其他数据表添加列,您可以从“分析中的数据”浮出控件或“筛选器”面板中执行拖放,或者从列选择器中选择列。打开列选择器并切换至感兴趣的数据表;列选择器将会切换至显示所选数据表中的列。仅当分析中存在多个数据表并具有匹配列时,才会显示数据表选择器,如下所示。匹配列只能使用已安装的客户端进行编辑,但当它们存在时,您可以从 Web 客户端将其他数据表添加到图表。

匹配列
另一重要概念是列匹配。对于显示多个数据表中数据的图表来说,您将用于对图表进行分组的列中,应至少存在一列从某种程度上来说与图表中其他数据表相应的列相匹配。如果某一列包含相同的数据,则该列为匹配列。如果某些列包含相同的数据类型值并且具有相同的列名称,则这些列将会自动匹配。如下所示的“销售额 2017”和“销售额 2018”数据表中,列“类别”和“类型”相匹配。配置图表时的一个基本原则是,要在可视化中使用的所有类别都应存在于所有数据表中。这样,列的匹配将变得简单。但是对这一原则来说,也存在一些例外情况。要了解更多信息,请参见列匹配下有关缺失的匹配列的部分。

如果没有找到自动匹配项,您可以手动添加匹配项。要了解有关何时以及如何手动匹配列的更多信息,请参见列匹配、手动添加列匹配以及以下主题。
虽然除了列匹配之外,通常不需要定义数据表之间的关系,但有时这样做会很有用。两个数据表相互关联后,一个数据表的标记和筛选将会传送到另一个数据表。有关如何指定相关数据表中筛选方式的详细信息,请参见在相关数据表中进行筛选。
基本示例
在以上两个数据表中进行数据比较无需任何特殊调整。仅需将两个数据表加载到 Spotfire 中,创建条形图,选择类别轴上的类别列,然后选择值轴上的“销售额 2017”和“销售额 2018”。

由于两个数据表中的列“类别”和“类型”具有相同的名称,且包含相同数据类型的值,因而它们已自动匹配。如该示例所示,主数据表为“销售额 2017”,因此类别轴上的列来源于该数据表。在该示例中,由于两个数据表中的类别列相同,因此任何一个数据表都可用作主数据表。当在条形图的数值轴上使用多个列时,应始终使用(“列名称”)对图表进行分组。在上图中,(“列名称”)选项用作着色的依据,但也可将其用作格栅化的依据,或如下图所示,将其添加到类别轴。

不同级别的详细信息
在上述示例中,数据表或多或少都会有相同的列;“类别”、“类型”和包含销售数据的列。您也可能比较图表中具有不同级别详细信息数据的数据表中的数据。例如,您可能希望将某年的销售目标与目前为止当年的实际销售额进行比较。假设您有一个包含水果和蔬菜销售目标的数据表。对每种蔬菜和水果类型来说,一个单独的行代表一个销售目标,如以下“目标”数据表所示。在另一个数据表中,您可能拥有当年的实际销售数据,如以下“Sales”数据表所示。在此数据表中部,每一行代表一个销售事务,这就表示,对每种类型的水果和蔬菜来说,销售数据由若干行表示。

通过将条形图中两个数据表中的数据合并在一起,您可以查看哪些水果和蔬菜本年达到了销售目标:

建议的工作流程
如果您不确定如何配置合并了不同数据表中的列的图表,此建议的工作流程将会很有帮助。
1.选择主数据表
首先查看不同数据表中的数据,并尝试回答以下问题。它们包含哪些数据?您希望透过该数据了解哪些内容?包含对图表进行分组所要依据的类别的数据表适合用作主数据表。例如,您可能希望按照地区、部门、销售人员、产品类型或相似度进行分组。
2.配置仅包含主数据表的图表
添加您要使用的图表类型,然后从主数据表中尽可能多地选择列,对图表进行配置。选择通过哪些列如何对图标进行分组,如果主数据表也包含您希望以聚合方式显示的列,则同样将这些列添加到相应的轴中。
3.添加聚合方法
如果图表已仅通过主数据表尽可能多地进行配置,则可以开始从其他数据表添加聚合列。
- 列匹配
将不同数据表的数据合并到一个图表中时,您需要考虑数据表中的列是如何匹配的。依据经验来说,您对图表进行分组所要依据的列,应在所有的数据表中都能找到。例如,这可以是定义散点图中标记内容的列、希望在条形图的类别轴上设置的列,或者希望交叉成格子状或为图表着色所依据的列。如果您是通过这种方式组织数据结构的,则配置图表和匹配列将会很简单。但是还有些特殊情况,那就是主数据表中的某些列并非在所有的数据表中都有匹配项。这种情况无关紧要。而且,即使数据是按照建议的方式配置的,您有时可能也需要手动做一些调整。 - 手动添加列匹配
如果要在单个图表中显示多个数据表中的数据,则这些数据表必须至少有一个可用的列匹配。如果数据表中的数据相似,通常会自动进行列匹配,但如果需要,您可以使用已安装的客户端添加手动匹配。 - 隐藏有关可能的不匹配项的警告
在一个图表中使用多个数据表时,如果根据仅出现在主数据表中的列对图表进行分组,请务必确保不发生类别重复。因此,如果按其他数据表中没有列匹配的列进行分组,Spotfire 将显示警告。 - 使用标签显示其他数据表中的数据
当列匹配可用时,您有时可以选择将另一个数据表中的标签添加到图表中。此功能并不适用于所有图表类型。
- 列匹配
将不同数据表的数据合并到一个图表中时,您需要考虑数据表中的列是如何匹配的。依据经验来说,您对图表进行分组所要依据的列,应在所有的数据表中都能找到。例如,这可以是定义散点图中标记内容的列、希望在条形图的类别轴上设置的列,或者希望交叉成格子状或为图表着色所依据的列。如果您是通过这种方式组织数据结构的,则配置图表和匹配列将会很简单。但是还有些特殊情况,那就是主数据表中的某些列并非在所有的数据表中都有匹配项。这种情况无关紧要。而且,即使数据是按照建议的方式配置的,您有时可能也需要手动做一些调整。 - 手动添加列匹配
如果要在单个图表中显示多个数据表中的数据,则这些数据表必须至少有一个可用的列匹配。如果数据表中的数据相似,通常会自动进行列匹配,但如果需要,您可以使用已安装的客户端添加手动匹配。 - 隐藏有关可能的不匹配项的警告
在一个图表中使用多个数据表时,如果根据仅出现在主数据表中的列对图表进行分组,请务必确保不发生类别重复。因此,如果按其他数据表中没有列匹配的列进行分组,Spotfire 将显示警告。 - 使用标签显示其他数据表中的数据
当列匹配可用时,您有时可以选择将另一个数据表中的标签添加到图表中。此功能并不适用于所有图表类型。