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

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

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

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

前提条件

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

编写 JSON 代码段

如需创建维恩图,请从以下 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 值显示可视化图表。

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

添加更多条件

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

${orders.total_amount} > 50

更改重叠标签值

默认情况下,维恩图中任何重叠区域的标签都是以英文逗号分隔的区域标签串联。例如,“消费金额超过 50 美元”“首次购买”和“老年人折扣”这三个区域的重叠部分将是“消费金额超过 50 美元、首次购买、老年人折扣”。

如需自定义这些标签,请使用图表配置编辑器修改 series.data.name 属性。为了确定哪个属性对应哪个区域,最好先列出所有区域。

例如,假设有一个包含三个圆圈的维恩图。这意味着共有 7 个区域。

您可以使用以下 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
          }
        }
      }
    ]
  }]
}