축척 값에 변수를 사용하는 방법(히트맵)안녕하세요 여러분,
다음 예에서는 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() 등을 사용하려고 시도했지만 아직 작동하지 않았습니다.
감사해요
자동화 및 스크립팅Re: 히트맵의 축척 값에 변수를 사용하는 방법당신은 할 수 있습니다
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)})});Re: 히트맵의 축척 값에 변수를 사용하는 방법@LatentDataTiger
Jarmo가 말한 것이 정확합니다.그러나 그는 눈에 띄지 않을 수도 있는 당신의 모범을 바꾸었습니다.귀하의 예에서는 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 )
)
)}
)
)
)
)
)
;Re: 히트맵의 축척 값에 변수를 사용하는 방법안녕하세요 Jarmo와 Jim입니다.
범례 서버 기술을 배우는 데 매우 흥미롭지만 스크립트의 마지막 줄이 작동하지 않았습니다. 내가 얻는 오류는 다음과 같습니다.
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)})});
감사해요,
렉스
Re: 히트맵의 축척 값에 변수를 사용하는 방법버전과 관련이 있을 수도 있습니다. 어떤 JMP 버전을 사용하고 있나요? 저는 JMP 17.2를 사용하고 있습니다.
Re: 히트맵의 축척 값에 변수를 사용하는 방법현재 JMP 15와 16을 사용하고 있습니다. JMP 17이 있지만 동료가 개발한 도구 상자 중 일부가 JMP17에서 작동하지 않기 때문에 15와 16을 유지하기로 결정했습니다.