注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
Quiver允许您绘制自定义数学表达式并使用公式指定筛选条件。我们在公式中支持以下结构:
6、3.14159、-128外,Quiver还支持科学计数法:1.602e-19。$符号引用绘图:$A指代参数名称为A的绘图,$A + $B计算两个绘图的和。true和false进行逻辑运算。secondsSince("time")和millisecondsSince("time")函数在公式中引用时间。时间需要采用ISO-8601格式 ↗。例如,secondsSince("1970-01-01T00:00:00+00:00")表示从1970年1月1日(UTC)起的秒数。+、-、*、/和余数运算符%:10 % 7计算结果为3。您还可以使用括号()来强制优先级。这些运算符生成双精度数字作为结果。
^进行幂运算。请参见下面内置函数中的pow函数进行幂运算。==用于等于,!=用于不等于,以及>、<、>=、<=用于比较。这些运算符生成布尔值作为结果。&&)和逻辑或(||)运算符组合布尔值。Quiver还支持逻辑非运算符(!),它用于取反布尔值。&)、按位或(|)、按位异或(^)和按位非(~)运算。您还可以执行位移运算:<<用于左移,>>用于保留符号的算术右移,>>>用于0填充的逻辑右移。Quiver支持以下内置数学函数列表:
| 函数名称 | 描述 |
|---|---|
abs(a) | 绝对值 |
acos(a) | 反余弦 |
acosh(a) | 反双曲余弦 |
asin(a) | 反正弦 |
asinh(a) | 反双曲正弦 |
atan(a) | 反正切 |
atanh(a) | 反双曲正切 |
atan2(a, b) | 两个数的反正切(四象限反正切);a是y坐标,b是x坐标。 |
cbrt(a) | 立方根 |
ceil(a) | 向上取整 |
cos(a) | 余弦 |
cosh(a) | 双曲余弦 |
exp(a) | 自然指数 |
floor(a) | 向下取整 |
isfinite(a) | 如果参数既不是无穷大也不是NaN则为true |
isnan(a) | 如果参数是NaN则为true |
ln(a) | 自然对数 |
log10(a) | 以10为底的对数 |
log2(a) | 以2为底的对数 |
max(a, b, ...) | 所有给定输入中的最大值 |
min(a, b, ...) | 所有给定输入中的最小值 |
pow(a, b) | a的b次幂 |
round(a) | 四舍五入到最接近的整数 |
signum(a) | 符号函数 |
sin(a) | 正弦 |
sinh(a) | 双曲正弦 |
sqrt(a) | 平方根 |
tan(a) | 正切 |
tanh(a) | 双曲正切 |
Quiver支持三元运算符a ? b : c来表示“如果a则b否则c”。例如,在每个时间点上,$A > 0 ? $B * 10 : $C * 10的值是$B * 10,如果$A在该时间点上的值大于0;否则,值是$C * 10。
您还可以使用NaN值在输入序列缺失值时返回替代值。例如,在每个时间点上,@M != NaN ? @M : @K的值是@M,如果它具有数值;否则,值是@K。
您可以使用return和skip语句提前“结束”,并返回一个值或指示不应返回任何值(例如筛选掉一个点)。
使用var关键字声明变量。使用=符号为变量指派一个值。变量可以是数字(双精度)、布尔值或字符串。
Copied!1 2 3 4 5 6 7 8 9var a = 6; var b = 3.14159; var c = 1.602e-19; // 支持指数表示法 var d = 1.602E-19; // 指数部分大小写不敏感 var boolean_example = true; var boolean_example = false; // 重新赋值为 false var string_example = "high"; // 字符串示例
您可以将字面量和变量组合成更复杂的表达式。
基本的数学运算符是 +、-、*、/。要计算余数,请使用 %。
Copied!1 2 3 4var a = 2 + 2; // a 的值为 4 a = 3 * 7; // a 的值为 21 a = 3.5 / 7; // a 的值为 0.5 a = 10 % 7; // a 的值为 3
运算符优先级如预期。您可以使用括号 ( ) 将表达式分组在一起。
Copied!1 2var a = 5 + 3 * 2; // a的值是11,因为乘法优先于加法,计算顺序为 3*2 + 5。 var b = (5 + 3) * 2; // b的值是16,因为括号内的运算优先,计算顺序为 (5+3)*2。
您还可以使用上述五个运算符的指派版本。
Copied!1 2 3 4 5 6var a = 10; a *= 2; // a 现在的值是 20 a += 3; // a 现在的值是 23 a -= 5; // a 现在的值是 18 a /= 3; // a 现在的值是 6 a %= 5; // a 现在的值是 1
您可以使用比较运算符 <、<=、>、>= 来比较数字。这些运算符生成布尔值(true 或 false)结果。
可以使用 == 检查相等性,使用 != 检查不等性。
然后可以使用逻辑运算符 && 和 || 组合这些表达式。
您可以使用 ! 运算符来反转布尔结果(true 变为 false,false 变为 true)。
可以使用 == 检查相等性,使用 != 检查不等性。
Copied!1 2 3 4 5 6var a = "high"; var b = "low"; // 比较值 var c = a == a; // true, 检查变量a是否等于自身 var d = a != b; // true, 检查变量a是否不等于变量b