HSL - 脚本和图表函数
HSL() 用于在表达式中设置或评估图表对象的颜色属性,其中 hue、saturation 和 luminosity 值介于 0 与 1 之间,用于定义颜色。
语法:
HSL (hue,
saturation, luminosity)
返回数据类型: 双
参数hue, saturation, luminosity | Hue、saturation 和 luminosity 分量值在 0 和 1 之间。 |
信息注释所有参数均必须为表达式,用于解算范围介于 0 至 1 之间的整数。
如果解释数值成分并以十六进制表示法格式化数值,则颜色分量的 RGB 值比较明显。例如,浅绿色的编号为 4 278 255 360,其十六进制表示法为 FF00FF00 和 RGB (0,255,0)。这相当于 HSL (80/240, 240/240, 120/240) - HSL 值为 (0.33, 1, 0.5)。
请参阅 可视化着色,找到如何在可视化中使用颜色函数的示例,以及有关通过表达式支持颜色的可视化的更多信息。
示例 - 图表表达式示例 | 结果 |
---|
If(Sum(Sales)>Sum(Budget),HSL( 0.33, 1, 0.25),HSL(0, 1, 0.5)) | 根据 Sales 和 Budget 之间的比较值,返回紫色或红色。 |
示例 - HSL 基本原理
概览
打开数据加载编辑器,并将下面的加载脚本添加到新部分。
加载脚本包含:
加载到名为 Example 的数据表中的数据集。
数据表中有以下字段:
加载脚本
Example:
LOAD * Inline [
Product, Sales
Product A, 200
Product B, 500
Product C, 100
Product D, 300
Product E, 700
];
结果
加载数据并打开工作表。创建新表并将该字段添加为维度:
创建以下度量:
在 Sum(Sales) 度量的属性面板中,输入以下表达式作为背景颜色表达式。这样将根据产品的销售额计算应用单元格颜色。
=If(Sales > 400, HSL(.33, 1, 0.25), If(Sales >= 200 and Sales <= 400, HSL(.167, 1, 0.5), HSL(0, 1, 0.5)) )
Results table Product | Sum(Sales) |
---|
Product A | 200 |
Product B | 500 |
Product C | 100 |
Product D | 300 |
Product E | 700 |
在此示例中,请注意以下几点:
示例 - 在图表中突出显示利润数据
概览
数据集包含销售数据。我们希望分析数据,并根据利润率是低、中等还是高来突出显示利润率。
打开数据加载编辑器,并将下面的加载脚本添加到新部分。
加载脚本包含:
加载到名为 Example 的数据表中的数据集。
数据表中有以下字段:
Customer
SalesValue
Cost
ProfitMargin
加载脚本
Example:
LOAD * Inline [
Customer, SalesValue, Cost, ProfitMargin
Customer A, 500, 300, 40%
Customer B, 800, 750, 6.25%
Customer C, 400, 300, 25%
Customer D, 600, 550, 8.33%
Customer E, 900, 700, 22.22%
];
结果
加载数据并打开工作表。创建新表并将该字段添加为维度:
创建以下度量:
在 Sum(ProfitMargin) 度量的属性面板中,输入以下表达式作为背景颜色表达式。
If(ProfitMargin > 0.3, HSL( 0.33, 1, 0.25), // Green for high-profit customers
If(ProfitMargin >= 0.1 and ProfitMargin <= 0.3, HSL( 0.11, 1, 0.5), // Orange for moderate-profit customers
HSL(0, 1, 0.5) // Red for low-profit customers
)
)
在外观面板的演示下,关闭总计。
Results table Customer | Sum(SalesValue) | Sum(Cost) | Sum([Profit Margin]) |
---|
Customer A | 500 | 300 | 40.00% |
Customer B | 800 | 750 | 6.25% |
Customer C | 400 | 300 | 25.00% |
Customer D | 600 | 550 | 8.33% |
Customer E | 900 | 700 | 22.22% |
HSL 函数的输出根据客户的利润率呈现以下颜色:
绿色,HSL( 0.33, 1, 0.25) ,针对利润率高于 30% 的客户。
橙色,HSL( 0.11, 1, 0.5) ,针对利润率在 10% 和 30% 之间的中等客户。
红色,HSL(0, 1, 0.5) ,针对利润率低于 10% 的客户。
示例 - HSL 图表场景
概览
数据集包含按国家分列的实际和预计销售数据。销售经理希望在条形图中显示数据,并突出显示高于该期间预计值的那些销售数字。
打开数据加载编辑器,并将下面的加载脚本添加到新部分。
加载脚本包含:
加载到名为 Example 的数据表中的数据集。
数据表中有以下字段:
Country
ActualSales
ProjectedSales
加载脚本
Example:
Load * Inline
[Country, ActualSales, ProjectedSales
Sweden, 100000, 50000
Germany, 125000, 175000
Norway, 74850, 68500
Ireland, 45000, 48000
Sweden, 98000, 50000
Germany, 115000, 175000
Norway, 71850, 68500
Ireland, 31000, 48000
];
结果
加载数据并打开工作表。创建新条形图并将该字段添加为维度:
创建以下度量:
添加颜色表达式以比较实际销售额和预计销售额。在属性面板的外观 > 颜色和图例下,关闭颜色:自动切换到自定义,然后从列表中选择按表达式。输入以下表达式:
=If(Sum(ActualSales)>Sum(ProjectedSales),HSL(1.2,1.0,0.25),HSL(0, 1.0, 0.25)),以绿色突出显示实际销售额超过预计销售额的情况,以红色突出显示预计销售额超过实际销售额的情况。
结果:按国家分列的销售条形图

我们可以看到,对于那些销售额超过预计值的国家,条形图的颜色是绿色的,而那些销售额低于预期值的国家则显示为红色。例如,Sweden 是绿色的,因为 98,000 的销售值大于 50,000 的投影值。