您可以使用图表配置编辑器自定义使用 HighCharts API 的 Looker 可视化图表的格式选项。这包括大多数笛卡尔图表,例如柱形图、条形图和折线图等。
如果启用了 Gemini in Looker 功能,您可以使用 数据可视化助理 根据基于文本的提示生成 JSON 格式选项,以加快 Looker 可视化图表的自定义速度。
前提条件
如需访问图表配置编辑器,您必须拥有 can_override_vis_config 权限。
自定义可视化图表
如需使用图表配置编辑器自定义可视化图表,请按以下步骤操作:
- 在探索中查看可视化图表,或在 Look 或信息中心内修改可视化图表。
- 在可视化图表中打开修改 菜单。
点击绘图 标签页中的修改图表配置 按钮。Looker 会显示修改图表配置 对话框。
图表配置(来源) 窗格包含可视化图表的原始 JSON,无法修改。
图表配置(替换) 窗格包含应替换来源 JSON 的 JSON。首次打开修改图表配置 对话框时,Looker 会使用一些默认 JSON 填充该窗格。您可以从该 JSON 开始,也可以删除该 JSON 并输入任何有效的 HighCharts JSON。
选择图表配置(替换) 部分,然后输入一些有效的 HighCharts JSON。新值将替换图表配置(来源) 部分中的任何值。
- 如需查看有效 HighCharts JSON 的示例,请参阅**示例** 部分。
- Looker 接受任何 有效的 JSON 值。Looker 不接受函数、日期或未定义的值。
点击 <>(格式化代码) ,让 Looker 正确格式化您的 JSON。
点击预览 以测试所做的更改。
点击应用 以应用所做的更改。可视化图表将使用自定义 JSON 值显示。
自定义可视化图表后,您可以保存它。如果您在探索中查看了可视化图表,请保存探索。如果您修改了 Look 或信息中心,请点击保存 。
如果您尝试预览包含无效 JSON 的代码,Looker 会显示 Invalid JSON detected 错误消息。您可以使用图表配置(替换) 窗格底部的 Autofix code 选项清理无效 JSON。
如果您想修改默认可视化图表选项,请先移除在图表配置编辑器中所做的任何更改,然后再替换它们。具体来说,请按以下步骤操作:
- 点击绘图 标签页中的修改图表配置 按钮。Looker 会显示修改图表配置 对话框。
- 复制图表配置(替换) 窗格中的文本。
- 点击清除图表替换 按钮以删除所有更改。
- 点击应用 。
- 使用默认可视化图表选项修改可视化图表。
- 点击绘图 标签页中的修改图表配置 按钮。Looker 会显示修改图表配置 对话框。
- 在图表配置(替换) 窗格中输入一些有效的 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定位第 90 个百分位数的系列值。name:此变量返回系列的维度值。例如,如果您有一个图表显示已售出、已取消和已退回的订单,则可以使用select: name = Sold定位维度值为“已售出”的系列。AND/OR使用AND和OR组合多个逻辑表达式。
如需查看在图表配置编辑器中实现的这些表达式,请参阅为最大值、最小值和百分位数值着色示例。
style 属性
style 属性可用于应用 HighCharts 支持的样式。例如,您可以使用 style.color 为系列值着色,使用
style.borderColor 为系列边框着色,并使用 style.borderWidth 设置系列边框宽度。如需查看更完整的样式选项列表,请参阅 Highcharts 选项,了解 series.column.data。
对于 折线图可视化图表,请使用 style.marker.fillColor 和 style.marker.lineColor,而不是 style.color。如需查看更完整的折线图样式选项列表,请参阅 Highcharts 选项,了解 series.line.data.marker。
如需查看在图表配置编辑器中实现的颜色格式,请参阅为最大值、最小值和百分位数值着色示例。
字段元数据
借助字段元数据 下拉菜单,您可以复制可视化图表中任何字段的系列名称。您可以使用 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 属性。
如需获取点的坐标,请点击修改图表配置 对话框顶部的检查点元数据 。然后,将指针悬停在要添加注解的数据点上。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 格式引用 中位售价 字段。如需直接复制此字段值,请点击修改图表配置 对话框中的字段元数据 下拉菜单,然后选择字段名称。

将系列值与平均值或中位数值进行比较
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 默认可视化图表类型中未包含的可视化图表类型。以下文章提供了您可以使用图表配置编辑器设计的一些可视化图表的示例:
- 使用图表配置编辑器创建子弹图
- 使用图表配置编辑器创建实心刻度盘图
- 使用图表配置编辑器创建流图
- 使用图表配置编辑器创建树状图
- 使用图表配置编辑器创建桑基图
- 使用图表配置编辑器创建依赖关系轮图
- 使用图表配置编辑器创建维恩图
- 使用图表配置编辑器创建旭日图
- 使用图表配置编辑器创建商品图表