Graph Builder 梯度极限的 expr 和 evalexpr我正在尝试设置一个脚本,该脚本将生成一个图形生成器,其梯度最小值和最大值等于正在绘制的列的分位数。
不幸的是,我使用的 expr 和 evalexpr 语法不适用于“Scale Values”中的矩阵。
我需要帮助。
dt0 = current data table();
param = "Voltage";
colp = dt0:param;
graph_high = Quantile( 0.975, column(dt0, param) << get as matrix() );
graph_low = Quantile( 0.025, column(dt0, param) << get as matrix() );
cmd = expr(
Graph Builder(
Size( 550, 550 ),
Show Control Panel( 0 ),
Variables(
X( :x ),
Y( :y ),
Color( :expr(param) )
),
Elements( Points( X, Y, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
6,
Properties(
0,
{gradient( {Scale Values( [expr(graph_low) expr(graph_high)] )} )}, // *Need Help Here*
Item ID( expr(param), 1 )
)
)}
)
)
);
);
eval(evalexpr(cmd));数据探索与可视化大规模定制回复:用于 Graph Builder 梯度限制的 expr 和 evalexpr我没有要验证的数据,但这应该可以:
dt0 = current data table();
param = "Voltage";
colp = dt0:param;
graph_high = Quantile( 0.975, column(dt0, param) << get as matrix() );
graph_low = Quantile( 0.025, column(dt0, param) << get as matrix() );
val matrix = [](1,0) || graph_low || graph_high;
cmd = expr(
Graph Builder(
Size( 550, 550 ),
Show Control Panel( 0 ),
Variables(
X( :x ),
Y( :y ),
Color( :expr(param) )
),
Elements( Points( X, Y, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
6,
Properties(
0,
{gradient( {Scale Values( Expr( val matrix ) )} )}, // *Need Help Here*
Item ID( expr(param), 1 )
)
)}
)
)
);
);
eval(evalexpr(cmd));回复:用于 Graph Builder 梯度限制的 expr 和 evalexpr非常感谢。 这行得通。
既然您给了我使用变量创建矩阵,然后将该矩阵放入 Graph Builder 脚本的想法,我决定尝试一下。 看起来我不需要在“val 矩阵”周围使用 Expr() 。
我发现这也有效:
dt0 = current data table();
param = "Voltage";
colp = dt0:param;
graph_high = Quantile( 0.975, column(dt0, param) << get as matrix() );
graph_low = Quantile( 0.025, column(dt0, param) << get as matrix() );
val matrix = matrix( {graph_low, graph_high} );
cmd = expr(
Graph Builder(
Size( 550, 550 ),
Show Control Panel( 0 ),
Variables(
X( :x ),
Y( :y ),
Color( :expr(param) )
),
Elements( Points( X, Y, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
6,
Properties(
0,
{gradient( {Scale Values( val matrix )} )},
Item ID( expr(param), 1 )
)
)}
)
)
);
);
eval(evalexpr(cmd));