如何在(热图)比例值中使用变量大家好,
在以下示例中,使用 Big Class.jmp 作为示例创建了热图:
gb=Graph Builder(
Size( 686, 525 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Color( :age ) ),
Elements( Heatmap( X, Y, Legend( 7 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
7,
Properties(
0,
{gradient( {Scale Values( [11 18] )} )},
Item ID( "age", 1 )
)
)}
)
)
);有没有办法使用变量来定义梯度比例限制? 这是我想要实现的目标:
gradient_low=10;
gradient_high=19;
gb=Graph Builder(
Size( 686, 525 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Color( :age ) ),
Elements( Heatmap( X, Y, Legend( 7 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
7,
Properties(
0,
{gradient( {Scale Values( matrix({<FONT face="arial black,avant garde" color="#FF0000">gradient_low</FONT>, <FONT face="arial black,avant garde" color="#FF0000">gradient_high</FONT>}) )} )},
Item ID( "age", 1 )
)
)}
)
)
);
我想使用“grandient_low”和“gradient_high”来定义热图梯度限制。
我尝试过使用 eval() 、 eval expr() 等,但还没有成功。
谢谢
自动化和脚本编写回复:如何在(热图)比例值中使用变量你可以
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gradient_low = 10;
gradient_high = 19;
gb = Eval(EvalExpr(dt << Graph Builder(
Size(686, 525),
Show Control Panel(0),
Variables(X(:weight), Y(:height), Color(:height)),
Elements(Heatmap(X, Y, Legend(7))),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
7,
Properties(
0,
{gradient({Scale Values(Expr(Matrix({gradient_low, gradient_high})`))})},
Item ID("height", 1)
)
)}
)
)
)));
但我很可能会通过 Legend Server
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gradient_low = 10;
gradient_high = 19;
gb = dt << Graph Builder(
Size(686, 525),
Show Control Panel(0),
Variables(X(:weight), Y(:height), Color(:height)),
Elements(Heatmap(X, Y, Legend(7))),
);
m_gradient = Matrix({gradient_low, gradient_high})`;
server = gb << Get Legend Server;
items = server << Get Legend Items;
items[1][1] << Set Properties({gradient({Scale Values(m_gradient)})});回复:如何在(热图)比例值中使用变量@LatentDataTiger
贾莫所说的是正确的。但是,他对您的示例进行了可能不会被注意到的更改。您的示例使用变量 Age 作为 Color 列,Jarmo 已将其更改为 Height。不同之处在于,年龄的建模类型为序数,身高的建模类型为连续。序数列不支持渐变值。要针对年龄执行此操作,您需要更改列的建模类型。这是一个为原始示例设置指定颜色渐变的脚本。
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:age << modeling type( continuous );
gradient_low = 10;
gradient_high = 19;
Eval(
Eval Expr(
gb = Graph Builder(
Size( 686, 525 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Color( :age ) ),
Elements( Heatmap( X, Y, Legend( 7 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
7,
Properties(
0,
{gradient(
{Scale Values( Matrix( {Expr( gradient_low ), Expr( gradient_high )} ) )}
)},
Item ID( "age", 1 )
)
)}
)
)
)
)
)
;回复:如何在(热图)比例值中使用变量嗨,贾莫和吉姆
我对学习图例服务器技术非常感兴趣,但是脚本的最后一行不起作用。 这是我得到的错误:
object not subscriptable in access or evaluation of 'items[1][1]' , items[1][/*###*/1]
你能帮忙检查一下最后一行吗
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gradient_low = 10;
gradient_high = 19;
gb = dt << Graph Builder(
Size(686, 525),
Show Control Panel(0),
Variables(X(:weight), Y(:height), Color(:height)),
Elements(Heatmap(X, Y, Legend(7))),
);
m_gradient = Matrix({gradient_low, gradient_high});
server = gb << Get Legend Server;
items = server << Get Legend Items;
items[1][1] << Set Properties({gradient({Scale Values(m_gradient)})});
谢谢,
霸王龙
回复:如何在(热图)比例值中使用变量可能与版本有关。 您使用的是哪个 JMP 版本? 我正在使用 JMP 17.2。
回复:如何在(热图)比例值中使用变量我目前正在使用 JMP 15 和 16。 我确实有 JMP 17,但我的同事开发的一些工具箱无法在 JMP17 中工作,因此我决定保留 15 和 16。