注意:以下翻译的准确性尚未经过验证。这是使用 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 9
var 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 4
var a = 2 + 2; // a 的值为 4 a = 3 * 7; // a 的值为 21 a = 3.5 / 7; // a 的值为 0.5 a = 10 % 7; // a 的值为 3
运算符优先级如预期。您可以使用括号 (
)
将表达式分组在一起。
Copied!1 2
var 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 6
var 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 6
var a = "high"; var b = "low"; // 比较值 var c = a == a; // true, 检查变量a是否等于自身 var d = a != b; // true, 检查变量a是否不等于变量b