您可以使用圖表設定編輯器,自訂使用 HighCharts API 的 Looker 圖表視覺化功能的格式設定選項。包括大部分的笛卡爾圖表,例如柱狀圖、長條圖和折線圖等。
如果啟用 Gemini in Looker 功能,您可以使用視覺化輔助工具,根據文字提示產生 JSON 格式選項,加快 Looker 視覺化資料的自訂作業。
必要條件
如要存取圖表設定編輯器,您必須具備 can_override_vis_config
權限。
自訂視覺化
如要使用圖表設定編輯器自訂視覺化資料,請按照下列步驟操作:
- 在「探索」中查看圖表,或在「Look 圖表」或資訊主頁中編輯圖表。
- 在圖表中開啟「編輯」選單。
按一下「Plot」分頁中的「Edit Chart Config」按鈕。Looker 會顯示「Edit Chart Config」對話方塊。
「圖表設定 (來源)」窗格包含圖表的原始 JSON,無法編輯。
「圖表設定 (覆寫)」窗格包含應覆寫來源 JSON 的 JSON。首次開啟「Edit Chart Config」對話方塊時,Looker 會在窗格中填入一些預設 JSON。您可以使用這份 JSON 開始,也可以刪除這份 JSON,然後輸入任何有效的 HighCharts JSON。
選取「圖表設定 (覆寫)」部分,然後輸入有效的 HighCharts JSON。新的值會覆寫「圖表設定 (來源)」部分中的任何值。
- 如需有效 HighCharts JSON 的範例,請參閱「範例」一節。
- Looker 可接受任何有效的 JSON 值。Looker 不接受函式、日期或未定義的值。
按一下「<>」(設定程式碼格式),讓 Looker 正確設定 JSON 格式。
按一下「預覽」即可測試變更。
按一下「套用」套用變更。系統會使用自訂 JSON 值顯示圖表。
自訂完成後,您可以儲存圖表。如果您在「探索」中查看了視覺化資料,請儲存「探索」。如果您編輯了 Look 或資訊主頁,請按一下「儲存」。
如果您嘗試預覽含有無效 JSON 的程式碼,Looker 會顯示 Invalid JSON detected
錯誤訊息。您可以使用「圖表設定 (覆寫)」窗格底部的「自動修正程式碼」 選項,清理無效的 JSON。
如要編輯預設的視覺化選項,請先移除在圖表設定編輯器中所做的任何變更,然後再進行取代。具體而言,請按照下列步驟操作:
- 按一下「Plot」分頁中的「Edit Chart Config」按鈕。Looker 會顯示「Edit Chart Config」對話方塊。
- 複製「圖表設定 (覆寫)」窗格中的文字。
- 按一下「清除圖表覆寫值」按鈕,即可刪除所有變更。
- 按一下 [套用]。
- 使用預設圖表選項編輯圖表。
- 按一下「Plot」分頁中的「Edit Chart Config」按鈕。Looker 會顯示「Edit Chart Config」對話方塊。
- 在「圖表設定 (覆寫)」窗格中輸入有效的 HighCharts JSON。您可以使用步驟 2 複製的文字做為範本,但請務必使用「預覽」按鈕測試變更,確保不會發生衝突。
- 按一下 [套用]。
使用 series formatters
進行條件式格式設定
圖表設定編輯器可接受大多數有效的 HighCharts JSON。它也接受 series formatters
屬性,但這項屬性只存在於 Looker 中。每個系列可包含多個格式化工具,以便結合不同的樣式規則。
series formatters
屬性可接受兩個屬性:select
和 style
。
- 在
select
屬性中輸入邏輯運算式,指出要格式化的資料值。 - 在
style
屬性中輸入一些 JSON,以指示如何設定資料值的格式。
舉例來說,如果每個資料值大於或等於 380,以下 JSON 會將其著色為橘色:
{
series: [{
formatters: [{
select: 'value >= 380',
style: {
color: 'orange'
}
}]
}]
}
以下各節將詳細說明 select
和 style
屬性的可能值。
select
屬性
您可以在 select
運算式中使用下列值:
value
:這個變數會傳回序列的值。您可以在比較中使用這個值,如以下範例所示:- 運算式
select: value > 100
會比對值大於 100 的資料列。 - 運算式
select: value > VIEW_NAME.FIELD_NAME
會比對值大於該資料列中其他欄位的資料列。如需範例,請參閱「與其他系列值比較的色彩系列」一節。 - 運算式
select: value > mean
會比對值大於該序列平均值的資料列。如需範例,請參閱「比較序列值與平均值或中位數」一節。 - 運算式
select: value > median
會比對值大於該序列中位數的資料列。如需範例,請參閱「比較序列值與平均值或中位數」一節。
- 運算式
max
:使用select: max
指定具有最大值的序列值。min
:使用select: min
指定具有最小值的序列值。percent_rank
:這個變數會鎖定指定百分位數的序列值。舉例來說,您可以使用select: percent_rank >= 0.9
指定九十百分位數的序列值。name
:這個變數會傳回序列的維度值。舉例來說,如果您有顯示「已售出」、「已取消」和「已退貨」訂單的圖表,可以使用select: name = Sold
指定維度值為「已售出」的序列。AND/OR
使用AND
和OR
結合多個邏輯運算式。
如要查看 Chart Config 編輯器中實作的這些運算式,請參閱「以顏色標示最大值、最小值和百分位值」範例。
style
屬性
style
屬性可用於套用 HighCharts 支援的樣式。舉例來說,您可以使用 style.color
為序列值著色、使用 style.borderColor
為序列邊框著色,以及使用 style.borderWidth
設定序列邊框寬度。如需更完整的樣式選項清單,請參閱 series.column.data
的 Highcharts 選項。
針對折線圖表,請使用 style.marker.fillColor
和 style.marker.lineColor
取代 style.color
。如需完整的線條樣式選項清單,請參閱 series.line.data.marker
的 Highcharts 選項。
如要查看在圖表設定編輯器中實作的色彩格式設定,請參閱「將最大值、最小值和百分比值著色」範例。
欄位中繼資料
您可以透過「欄位中繼資料」下拉式選單,複製視覺化報表中任何欄位的序列名稱。您可以使用 series formatters
屬性,比較不同系列的值,藉此使用這個系列名稱。如需範例,請參閱「與其他系列值比較的色彩系列」一節。
範例
以下各節將提供一些常見的圖表設定編輯器用途範例。如需可編輯的完整屬性清單,請參閱 HighCharts API 說明文件。
變更背景顏色和軸文字顏色
如要變更圖表的背景顏色,請使用 chart.backgroundColor
屬性。
同樣地,如要變更圖表中軸的文字顏色,請使用下列屬性:
下列 HighCharts JSON 會將圖表的背景顏色變更為紫色,並將軸標題和標籤的文字變更為白色。
{
chart: {
backgroundColor: "purple"
},
xAxis: {
labels: {
style: {
color: "white"
}
},
title: {
style: {
color: "white"
}
}
},
yAxis: {
labels: {
style: {
color: "white"
}
},
title: {
style: {
color: "white"
}
}
}
}
自訂工具提示顏色
如要自訂工具提示的顏色,請使用下列屬性:
下列 HighCharts JSON 會將工具提示的背景顏色變更為青藍色,並將工具提示文字的顏色變更為黑色。
{
tooltip: {
backgroundColor: "cyan",
style: {
color: "black"
}
}
}
自訂工具提示內容和樣式
如要自訂工具提示的內容,請使用下列屬性:
以下 HighCharts JSON 會變更工具提示格式,讓 x 軸值以較大的字型顯示在工具提示頂端,後面接著是該點的所有系列值清單。
本範例使用下列 HighCharts 函式和變數:
{key}
是會傳回所選點 x 軸值的變數。(在本例中為月份和年份)。{#each points}{/each}
是函式,會針對圖表中的每個序列重複封閉程式碼。{series.name}
是會傳回系列叢書名稱的變數。{y:.2f}
是會傳回所選點 y 軸值的變數,並四捨五入至小數點後兩位。{y}
是會傳回所選點 y 軸值的變數。{variable:.2f}
會將variable
四捨五入至小數點後兩位。如需更多值格式設定範例,請參閱 Highcharts 範本說明文件。
{
tooltip: {
format: '<span style="font-size: 1.8em">{key}</span><br/>{#each points}<span style="color:{color}; font-weight: bold;">\u25CF {series.name}: </span>{y:.2f}<br/>{/each}',
shared: true
},
}
新增圖表註解和標題
如要新增註解,請使用 annotations
屬性。如要為圖表新增標題,請使用 caption
屬性。
如要取得點的座標,請按一下「Edit Chart Config」對話方塊頂端的「Inspect Point Metadata」。接著,將游標懸停在要加上註解的資料點上。Looker 會顯示點 ID,您可以在 annotations.labels.point
屬性中使用該 ID。
下列 HighCharts JSON 會在圖表中新增兩個註解,說明在特定時間範圍後,商品數量會減少。並在圖表底部新增說明,進一步解釋註解。
{
caption: {
text: 'Items go on clearance after 60 days, and are thrown away after 80 days. Thus we see large drops in inventory after these events.'
},
annotations: [{
labels: [{
point: "inventory_items.count-60-79",
text: "Clearance sale"
},
{
point: "inventory_items.count-80+",
text: "Thrown away"
},
]
}]
}
新增動態註解
您也可以使用 annotationsSource
和 annotationsTarget
參數,將欄位中的資料做為註解。
如要取得欄位名稱,您可以使用「欄位中繼資料」下拉式選單。請注意,annotationsTarget
欄位必須是評估指標。
下列 HighCharts JSON 會使用 orders.annotations
欄位的值,做為 orders.count
欄位的註解:
{
annotations: [{
labels: [{
annotationsSource: 'orders.annotations',
annotationsTarget: 'orders.count'
}]
}]
}
新增垂直參考區間
如要新增垂直參考區間,請使用 xAxis.plotBands
屬性。
下列 HighCharts JSON 會在 2022 年 11 月 24 日至 2022 年 11 月 29 日之間新增垂直參考區塊,用來表示特賣期。並在圖表底部新增說明,說明該區塊的重要性。
請注意,xAxis.plotBands
的 to
和 from
屬性必須對應至圖表中的資料值。在這個範例中,由於資料是依時間計算,因此屬性會接受 Unix 時間戳記值 (2022 年 11 月 29 日為 1669680000000,2022 年 11 月 24 日為 1669248000000)。to
和 from
HighCharts 屬性不支援以字串為基礎的日期格式,例如 MM/DD/YYYY 和 DD-MM-YY。
{
caption: {
text: 'This chart uses the HighCharts plotBands attribute to display a band around the Black Friday Cyber Monday sale period.'
},
xAxis: {
plotBands: [{
to: 1669680000000,
from: 1669248000000,
label: {
text: 'BFCM Sale Period'
}
}]
},
}
新增虛線和虛線
如要將實線變更為虛線,請使用 series.dashStyle
屬性。
下列 HighCharts JSON 會將 Customers
序列的 dashStyle
屬性變更為虛線,並將 Sales
序列的 dashStyle
屬性變更為點線。
{
series: [{
name: 'Customers',
dashStyle: 'Dash'
}, {
name: 'Sales',
dashStyle: 'Dot'
}]
}
以顏色標示最大值、最小值和百分位值
請參閱「充分運用 Looker 視覺化工具的訣竅:在笛卡爾圖表中自訂條件式格式」頁面,深入瞭解如何為笛卡爾視覺化工具的最大值、最小值和百分位數值著色。
顏色序列與其他序列值的比較
從 Looker 25.0 開始,您可以使用 formatters.select
參數將目前的資料值與其他序列的值進行比較。
舉例來說,假設您要製作一張圖表,顯示多個城市的平均特價和中位特價。下列 HighCharts JSON 會將平均銷售價格的顏色變更為綠色 (如果平均銷售價格大於或等於銷售價格中位數),否則為栗色:
{
chart: {},
series: [{
name: 'Average Sale Price',
formatters: [{
select: 'value >= order_items.median_sale_price',
style: {
color: 'green',
dataLabels: {
color: 'green'
}
}
},
{
select: 'value < order_items.median_sale_price',
style: {
color: 'maroon',
dataLabels: {
color: 'maroon'
}
}
}
]
}, {
name: 'Median Sale Price'
}]
}
請注意,select: 'value >= order_items.median_sale_price'
行會以 VIEW_NAME.FIELD_NAME
格式參照「Median Sale Price」欄位。如要直接複製這個欄位值,請在「Edit Chart Config」對話方塊中點選「Field metadata」下拉式選單,然後選取欄位名稱。
比較序列值與平均值或中位數
formatters.select
參數支援 Looker 25.0 以上版本的 mean
關鍵字,以及 Looker 25.2 以上版本的 median
關鍵字。這些關鍵字可讓您將目前的資料值與序列的算術平均值或中位數進行比較。
舉例來說,假設您要製作一張圖表,顯示去年每個月的訂單利潤。如果訂單利潤低於平均訂單利潤,下列 HighCharts JSON 會將每個長條的顏色變更為灰色 (以十六進位代碼 #aaa
表示):
{
chart: {},
series: [{
name: 'Order Profit',
formatters: [{
select: 'value < mean',
style: {
color: '#aaa'
}
}]
}]
}
如要比較序列值與中位數 (而非平均值),請將 select: 'value < mean'
行變更為 select: 'value < median'
。
使用範本儲存及分享設定
您可以將設定儲存為範本,以便在其他圖表中重複使用,或提供給其他使用者作為起點。
儲存範本
在圖表設定編輯器中編輯 HighCharts JSON 時,您可以按照下列步驟將程式碼儲存為範本:
- 在「圖表設定編輯器」對話方塊中,按一下「另存為範本」。
- 為範本命名。
- 輸入說明,讓其他使用者瞭解範本的用途。
- 視需要編輯及預覽程式碼。
- 按一下「儲存」,驗證程式碼。
- 修正所有驗證錯誤。
- 再按一次「儲存」,即可儲存範本。
建立範本時,請注意下列事項:
- 嵌入使用者無法建立、編輯或套用範本。
- 在您的執行個體中,凡是未嵌入使用者,且有權存取圖表設定編輯器的使用者,都可以查看您的範本。
- 並非所有範本都適用於所有圖表類型。建議您在「說明」欄位中指定要搭配哪種圖表類型使用範本。
套用範本
您可以將範本套用至目前的視覺呈現。套用範本時,請注意下列事項:
- 套用範本會覆寫您在圖表設定檔編輯器中編寫的任何程式碼。
- 並非所有範本都適用於所有圖表類型。舉例來說,如果範本作者為長條圖編寫程式碼,該程式碼在折線圖上可能會產生不同的效果。
如要套用範本,請按照下列步驟操作:
- 在「圖表設定編輯器」對話方塊中,按一下「已儲存的範本」。
- 按一下範本,然後點選「套用範本」。
- 按一下「繼續」。
Looker 會套用範本,您可以繼續在圖表設定編輯器中進行編輯。
刪除範本
如要刪除範本,請按照下列步驟操作:
- 在「圖表設定編輯器」對話方塊中,按一下「已儲存的範本」。
- 按一下要刪除的範本旁的三點圖示選單。
- 點選「刪除」。
變更完成後,請按一下「已儲存的範本」對話方塊中的 X 按鈕,返回「圖表設定編輯器」對話方塊。
編輯範本
如要編輯範本,請按照下列步驟操作:
- 在「圖表設定編輯器」對話方塊中,按一下「已儲存的範本」。
- 按一下要編輯的範本旁邊的三點選單。
- 按一下 [編輯]。
- 完成變更後,按一下「儲存」。
建立新的視覺化類型
您可以使用圖表設定檔編輯器,建立 Looker 預設的顯示類型以外的顯示類型。以下文章提供一些範例,說明您可以使用圖表設定檔編輯器設計的視覺化資料:
- 使用圖表設定編輯器建立圓餅圖
- 使用圖表設定檔編輯器建立實心儀表圖
- 使用圖表設定編輯器建立流程圖表
- 使用圖表設定編輯器建立樹狀圖
- 使用圖表設定編輯器建立桑基圖
- 使用圖表設定編輯器建立依附元件圖
- 使用圖表設定編輯器建立文氏圖
- 使用圖表設定檔編輯器建立圓 Sunburst 圖
- 使用圖表設定檔編輯器建立項目圖表