使用圖表設定編輯器建立文氏圖

文氏圖會顯示資料集中兩個以上屬性的重疊部分。

使用圖表設定編輯器,從 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. 在「Plot」分頁中,按一下「Edit Chart Config」按鈕。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
          }
        }
      }
    ]
  }]
}