안녕하세요 여러분,
시나리오가 막혔어요. by 절을 두 번 사용하여 하나의 창에 8개의 서로 다른 그래프가 있는 가변성 그래프가 있습니다. 한 사례에는 두 가지 옵션이 있으며 한 사례에 대해 값 색상이 다르게 설정되어 있기 때문에 한 사례에 대한 한 열과 다른 사례에 대한 행 범례를 추가하고 싶습니다.
다음은 시도 중이지만 행 범례를 표시하는 데 작동하지 않는 JSL 코드입니다. 어떤 도움이라도 주시면 감사하겠습니다.
dt = Open("$SAMPLE_DATA/Cars.jmp");
Column(dt, "Size" ) << Set Property( "Value Colors", {"It" = 0} );
vc = Variability Chart(
Y( :Wt ),
X( :Model ),
Show Range Bars( 0 ),
Show Cell Means( 0 ),
Std Dev Chart( 0 ),
By( :"D/P"n, :Protection )
);
If (Column(dt, "D/P"n)[1] == "Driver",
vc << Row Legend("Doors");
);
If (Column(dt, "D/P"n)[1] == "Passenger",
vc << Row Legend("Size");
);

위의 예는 d/p="Driver"인 경우 문이 행 범례로 추가되고 일반 색상을 사용하는 이상적인 경우입니다. 그러나 d/p="passenger" 크기가 행 범례로 추가되고 크기의 색상 값이 검정색으로 설정되면 이전 질문에 표시된 대로 자동으로 추가됩니다. https://community.jmp.com/t5/Discussions/JSL-coloring-single-element-of-legend-to-a-custom-color/mp/676602#M86324
감사합니다. 가능하다면 이 작업을 수행하기 위한 JSL 코드를 이상적으로 찾고 있습니다!
행 범례가 프레임 상자로 설정되었습니다.

따라서 행 범례를 다른 프레임박스로 설정해야 합니다. 프레임박스를 반복하거나 해당 프레임박스에 대한 참조를 가져오는 다른 방법(XPath)을 사용할 수 있습니다. 아래는 루프를 사용한 예입니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Cars.jmp");
Column(dt, "Size") << Set Property("Value Colors",
{"comp" = -15113984, "hev" = -5682409, "lt" = 0, "med" = -29362, "mini"
= -13983232, "mpv" = -13400487, "pu" = -16442434, "van" = -9282864}
);
wait(0);
vcs = dt << Variability Chart(
Y(:Wt),
X(:Model),
Show Range Bars(0),
Show Cell Means(0),
Std Dev Chart(0),
By(:"D/P"n, :Protection)
);
obs = vcs << report;
// ob_titles = obs << get title;
For Each({cur_ob, idx}, obs,
//cur_ob = obs[1];
cur_title = cur_ob << get title;
If(Contains(cur_title, "Variability Gauge D/P=Driver"),
cur_ob[FrameBox(1)] << Row Legend("Doors");
, Contains(cur_title, "Variability Gauge D/P=Passenger"),
cur_ob[FrameBox(1)] << Row Legend("Size", Color Theme(""));
, // else (do nothing)
continue();
);
// show(cur_title, idx);
);