如何在(熱圖)比例值中使用變數大家好,
在以下範例中,使用 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。