使用图表配置编辑器创建维恩图

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

使用图表配置编辑器,您可以从 Looker 中的柱形图开始创建维恩图。您必须至少包含两个 type: yesno 维度以及一个具有 type: string 或 type: number 的维度,才能创建维恩图。

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

前提条件

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

编写 JSON 代码段

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

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

创建维恩图

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

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

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

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

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

  4. 选择图表配置(替换)部分,然后输入本页编写 JSON 代码段部分中的 HighCharts JSON 代码段。

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

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

  7. 如需应用更改,请点击应用。系统将使用自定义 JSON 值显示可视化图表。

自定义可视化图表后,您可以将其保存。

添加更多条件

如需向维恩图添加更多圆圈,请向数据表中添加更多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'}]
  }]
}

更改标签字号

如需更改韦恩图上标签的字体大小,请使用图表配置编辑器修改 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
          }
        }
      }
    ]
  }]
}