Spotfire® 用户指南

设置基于其他列的显示值

有时,您可能希望将其他值显示为显示值,而不是显示实际定义轴的值。显示值可以在展开的“分析中的数据”浮出控件中轻松配置。

关于此任务

例如,客户 ID 的数据可能与诸多其他信息一起位于外部数据表(例如流式数据)中,但是 ID 与实际客户名称的映射包含在一个较小的已导入数据表中。如果这两个数据表中有一个在数据库中,则无法通过直接添加列来联接它们。此时,您可以选择在图表中显示基于外部 ID 的数据,而更改显示值以将已导入数据表中的客户名称显示为轴标签。(使用显示值时,数据和显示值都可能来自内存或数据库数据表。)

显示值在展开的“分析中的数据”浮出控件中配置。只有字符串列或表达式可用作显示值。

定义显示值时,如果目标数据表中只有一个匹配的字符串列,您可以选择只显示来自其他列的值,或者同时显示旧值和来自其他列的显示值:

即使未提供快捷方式选项,您也可以指定类似的配置。具体方法是在显示值列上定义自定义表达式(例如 Concatenate([Employees].[Employee ID],": ",[Employees].[Name]))。请注意,不支持在表达式中混合使用来自多个数据表的列。

注: 目前,只有分类为标识符或类别的列才能具有显示值。如果为其他类型的列选择显示值,则该列将自动重新分类为“类别”。这样可以确保使用该列的表达式接受类别表达式,而不是连续表达式。不能对多维数据集数据使用显示值,也不能将图像或几何数据用作显示值。

要使用来自另一个数据表的列值,两个数据表之间必须存在匹配列。列匹配通常是自动创建的(例如,如果这些数据表中的两个 ID 列的名称和数据类型相同),但也可以使用已安装的 Spotfire 客户端配置特定的列匹配。有关匹配数据表的一般信息,请参见一个图表中的多个数据表

注: 更改列的显示值时,这些显示值将显示在所有有意义的地方,例如类别轴的轴标签上、图表工具提示中或复选框、单选按钮、项目或列表框筛选器中。范围筛选器和其他连续应用程序将始终显示原始值。在文本筛选器中执行搜索时始终会搜索原始数据,因此搜索显示值不会返回任何结果,但在列表框筛选器中搜索将显示匹配的显示值和原始值。

过程

  1. 编写栏上,单击“分析中的数据”,然后单击感兴趣的列。
    这应该是您要更改其显示值的列。
  2. 在展开的浮出控件中,确保选择“有关所选列的详细信息”
  3. 在展开的浮出控件的下部,单击“显示值”下的列选择器。
    如果分析中有多个数据表,并且有可用的列匹配,列选择器的顶部将出现一个下拉列表,从中可选择一个数据表。如果分析中只有一个数据表,则只能从该数据表中选择列。有关如何将另一个数据表添加到分析的帮助信息,请参见选择要分析的数据选择如何加载数据
  4. 在列选择器的上部,选择要从中选取显示值的数据表。
    如果在列表中看不到任何列,则可能没有定义匹配列。请参见列匹配
  5. 单击该列以提供显示值。
    您也可以为显示值定义自定义表达式。例如,Concatenate([Employees].[Firstname], " ",[Employees].[Last name])。有关详细信息,请参见下文。
    图表和适用的筛选器会更新以显示显示值而不是原始值。
    提示: 要让一个图表中的某个轴不使用显示值,而使用列中的原始值,可以在该轴上指定自定义表达式。例如:Integer([Employee ID]) as [Employee ID]

示例

在本例中,分析中有两个不同的数据表;第一个数据表包含许多员工的工资,且员工使用员工编号标识:

第二个数据表包含员工编号与员工名字和姓氏的映射:

在条形图中显示来自工资数据表中的原始数据时,您将只看到一串带有员工编号的条形,但是将员工编号列的显示值设置为映射表中串联起来的名字和姓氏后(使用自定义表达式 Concatenate([Employees].[First name]," ",[Employees].[Last name])),各个员工的工资将一目了然:


展开的“分析中的数据”浮出控件中已指定了“工资”数据表中“员工 ID”列的显示名称:


另请参见使用显示值对列进行排序