使用 Chart Config Editor 创建维恩图

维恩图用于显示数据集中两个或更多属性之间的重叠情况。

借助图表配置编辑器,您可以从 Looker 中的柱状图开始创建 Venn 图。您必须至少添加两个 type: yesno 维度和一个带有 type: stringtype: number 的维度,才能创建维恩图。

例如,您可以创建一个维恩图,以显示用户首次购买的订单、应用了老年人折扣的订单与金额满 50 美元的订单之间的重叠情况。

前提条件

如需访问图表配置编辑器,您必须拥有 can_override_vis_config 权限

编写 JSON 代码段

如需创建 Venn 图,请从以下 JSON 代码段开始:

{
  chart: {
    type: 'venn',
  }
}

创建维恩图

要创建维恩图,请按以下步骤操作:

  1. 在“探索”中查看柱形图,或者在 Look 或信息中心内修改柱形图。

    从至少包含三个维度的柱形图开始。添加一个维度 type: stringtype: number。 至少添加两个type: yesno维度。

  2. 在可视化图表中,打开修改菜单。

  3. 绘图标签页中,点击修改图表配置按钮。Looker 会显示修改图表配置对话框。

  4. 选择 Chart Config (Override) 部分,然后输入本页编写 JSON 代码段部分中的 HighCharts JSON 代码段。

  5. 如需让 Looker 正确设置 JSON 格式,请点击 <>(设置代码格式)

  6. 如需测试所做更改,请点击预览

  7. 要应用您所做的更改,请点击应用。系统将使用自定义 JSON 值显示可视化结果。

自定义完可视化图表后,您可以保存它。

添加更多条件

如需向 Venn 图添加更多圆圈,请向数据表格添加更多 type: yesno 维度。如果只需为维恩图创建此条件,您可以创建自定义维度。将自定义维度编写为布尔值条件,如以下示例所示:

${orders.total_amount} > 50

更改重叠标签值

默认情况下,维恩图中任何重叠区域的标签都是以逗号分隔的区域标签串联起来。例如,“支出超过 50 美元”“首次购买”和“老年人折扣”区域之间的重叠区域为“支出超过 50 美元、首次购买、老年人折扣”。

如需自定义这些标签,请使用图表配置编辑器修改 series.data.name 属性。要确定哪个属性对应于哪个区域,先枚举所有区域会很有帮助。

例如,假设有一个包含三个圆圈的维恩图。也就是说,总共有七个区域。

您可以使用以下 JSON 代码段找出每个数字对应的标签:

{
  chart: {
    type: 'venn'
  },
    series: [{
    data: [{ name: '1'}, {name: '2'}, {name: '3'}, {name: '4'}, {name: '5'}, {name: '6'}, {name: '7'}]
  }]
}

然后,您可以修改要更改名称的任何区域的 name 属性。如要将标签保留为默认值,请移除 name 属性,但保留括号。在此示例中,重叠区域 (3、5、6、7) 已重新标记,外圈 (1、2、4) 保留了默认标签。

{
  chart: {
    type: 'venn'
  },
    series: [{
    data: [{}, {}, {name: 'Ruby tier'}, {}, {name: 'Platinum tier'}, {name: 'Emerald tier'}, {name: 'Sapphire tier'}]
  }]
}

更改标签字号

如需更改 Venn 图中标签的字体大小,请使用图表配置编辑器修改 dataLabels.style.fontSize 属性。

为进一步展开前面的示例,以下示例将每个标签的字体大小均设置为 24 磅。

{
  chart: {
    type: 'venn',

  },
  series: [{
    data: [{
        dataLabels: {
          style: {
            fontSize: 24
          }
        }
      }, {
        dataLabels: {
          style: {
            fontSize: 24
          }
        }
      }, {
        name: 'Ruby tier',
        dataLabels: {
          style: {
            fontSize: 24
          }
        }
      }, {
        dataLabels: {
          style: {
            fontSize: 24
          }
        }
      }, {
        name: 'Platinum tier',
        dataLabels: {
          style: {
            fontSize: 24
          }
        }
      },
      {
        name: 'Emerald tier',
        dataLabels: {
          style: {
            fontSize: 24
          }
        }
      },
      {
        name: 'Sapphire tier',
        dataLabels: {
          style: {
            fontSize: 24
          }
        }
      }
    ]
  }]
}