颜色函数

本文介绍颜色函数的基本语法及示例。

日志服务支持如下颜色函数。

重要
  • 在日志服务分析语句中,表示字符串的字符必须使用单引号('')包裹,无符号包裹或被双引号("")包裹的字符表示字段名或列名。例如:'status'表示字符串status,status"status"表示日志字段status。

  • 在日志服务控制台上使用颜色函数时,查询和分析结果的可视化效果并不理想,推荐您在终端服务器上展示查询和分析结果。

    • 控制台展示效果render

    • 终端展示效果color

函数名称

语法

说明

支持SQL

支持SPL

bar函数

bar(x, width)

通过width指定整条ANSI条形图的宽度,其中该ANSI条形图的起始颜色为红色(low_color),结束颜色为绿色(high_color)。然后通过x截取其中一段ANSI条形图并返回。

×

bar(x, width, low_color, high_color)

通过width指定整条ANSI条形图的宽度,其中该ANSI条形图的起始颜色和结束颜色为自定义颜色。然后通过x截取其中一段ANSI条形图并返回。

×

color函数

color(string)

将颜色字符串转换为color类型。

×

color(x, low, high, low_color, high_color)

通过判断xlowhigh之间的占比指定low_colorhigh_color的份量,然后返回处于low_colorhigh_color之间的一个颜色。

×

color(y, low_color, high_color)

通过y指定low_colorhigh_color的份量,然后返回处于low_colorhigh_color之间的一个颜色。

×

render函数

render(boolean expression)

通过颜色渲染返回结果。布尔表达式为真时,返回绿色勾;否则返回红色叉。

×

render(x, color)

通过自定义的颜色渲染返回结果。

×

rgb函数

rgb(red, green, blue)

通过RGB值返回一个颜色值。

×

bar函数

bar函数用于绘制一条ANSI条形图。

语法

  • 通过width指定整条ANSI条形图的宽度,其中该ANSI条形图的起始颜色为红色(low_color),结束颜色为绿色(high_color)。然后通过x截取其中一段ANSI条形图并返回。

    bar(x, width)
  • 通过width指定整条ANSI条形图的宽度,其中该ANSI条形图的起始颜色和结束颜色为自定义颜色。然后通过x截取其中一段ANSI条形图并返回。

    bar(x, width, low_color, high_color)

参数说明

参数

说明

x

用于指定返回的条形图占整条ANSI条形图的比例。参数值为double类型,取值范围为[0,1]。

width

整条ANSI条形图的宽度。

low_color

颜色梯度中起始颜色的RGB值。

high_color

颜色梯度中结束颜色的RGB值。

返回值类型

varchar类型。

示例

  • 示例1:计算1小时PV占总PV的比值,然后通过ANSI条形图表示计算结果。

    • 查询和分析语句

      * |
      SELECT
        Method,
        bar(pv/m,100)
      FROM(
          SELECT
            *,
            max(pv) over() AS m
          FROM(
              SELECT
                Method,
                count(1) AS pv
              FROM         internal-operation_log
              WHERE
                __date__ > '2021-09-10 00:00:00'
                AND __date__ < '2021-09-10 01:00:00'
              GROUP BY
                Method
            )
        )
    • 查询和分析结果(控制台)bar

    • 查询和分析结果(终端)bar

  • 示例2:使用白色和红色绘制一条ANSI条形图,宽度为50。

    • 查询和分析语句

      * | SELECT bar(1,50,rgb(255,255,255),rgb(255,0,0))
    • 查询和分析结果(控制台)bar

    • 查询和分析结果(终端)bar

color函数

color函数用于获取目标值对应的颜色。

语法

  • 将颜色字符串转换为color类型。

    color(string)
  • 通过判断xlowhigh之间的占比指定low_colorhigh_color的份量,然后返回处于low_colorhigh_color之间的一个颜色。

    color(x, low, high, low_color, high_color)
  • 通过y指定low_colorhigh_color的份量,然后返回处于low_colorhigh_color之间的一个颜色。

    color(y, low_color, high_color)

参数说明

参数

说明

x

参数值为double类型。

y

参数值为double类型,取值范围为[0,1]。

low

最小值,参数值为double类型。

high

最大值,参数值为double类型。

low_color

颜色梯度中起始颜色的RGB值。

high_color

颜色梯度中结束颜色的RGB值。

string

字符串,可选值为black、red、green、yellow、blue、magenta、cyan、white或CSS样式的RGB值(例如#000)。

返回值类型

color类型。

示例

  • 示例1:将颜色字符串转换为color类型。

    • 查询和分析语句

      * | SELECT color('#000')
    • 查询和分析结果(控制台)color

    • 查询和分析结果(终端)color

  • 示例2:对request_length字段值进行取余计算并将计算结果传递给color函数,color函数根据该计算结果返回一个颜色,然后将该颜色传递给bar函数,最后通过bar函数绘制出相应的ANSI条形图。

    • 查询和分析语句

      *|SELECT x,bar(10,10, color(x, 0,10, rgb(255,0,0), rgb(0,255,0)), rgb(0,255,0)) FROM(SELECT  *FROM (SELECT  request_length%10 x FROM  log))
    • 查询和分析结果(控制台)color

    • 查询和分析结果(终端)color

  • 示例3:通过color函数返回一种颜色,然后传递给bar函数,绘制出相应的ANSI条形图。

    • 查询和分析语句

      *|SELECT bar(10,10, color(0.3, rgb(255,255,255), rgb(255,0,0)), rgb(0,255,0))
    • 查询和分析结果(控制台)color

    • 查询和分析结果(终端)color

render函数

render函数通过颜色渲染返回结果。

语法

  • 通过颜色渲染返回结果。布尔表达式为真时,返回绿色勾;否则返回红色叉。

    render(boolean expression)
  • 通过自定义的颜色渲染返回结果。

    render(x, color)

参数说明

参数

说明

boolean expression

布尔表达式。

x

X坐标,参数值为integer类型。

color

颜色,参数值为color类型。

返回值类型

varchar类型。

示例

  • 示例1:通过count函数统计网站访问PV,然后通过render函数判断PV是否小于1000。如果小于,则返回绿色勾。

    • 查询和分析语句

      * | SELECT render(count(*)<1000)
    • 查询和分析结果(控制台)render

    • 查询和分析结果(终端)render

  • 示例2:通过count函数统计日志总数,然后使用绿色渲染计算结果。

    • 查询和分析语句

      * | SELECT render(count(*),rgb(48,169,16))
    • 查询和分析结果(控制台)render

    • 查询和分析结果(终端)render

rgb函数

rgb函数会根据RGB值返回一个颜色。

语法

rgb(red, green, blue)

参数说明

参数

说明

red

颜色中的红色份量,取值范围为[0,255],参数值为integer类型。

green

颜色中的绿色份量,取值范围为[0,255],参数值为integer类型。

blue

颜色中的蓝色份量,取值范围为[0,255],参数值为integer类型。

返回值类型

color类型。

示例

根据RGB值返回一个颜色。

  • 查询和分析语句

    *|SELECT rgb(255,0,0)
  • 查询和分析结果(控制台)rgb

  • 查询和分析结果(终端)rgb