모두들 안녕,
그래프 빌더에 Ellipse 요소를 표시하고 싶지만 전체 타원이 아닌 윤곽선만 색칠하고 싶습니다.
사용자 정의 메뉴를 사용하고 선 색상 속성을 수정하는 솔루션을 찾았습니다. 그러나 여러 그룹이 있는 경우(오버레이 드롭 영역 사용) 모든 타원을 하나씩 수정해야 함을 의미합니다.
더 빠른 방법이 있습니까? JSL을 사용하지 않고 가능하다면?
다음은 Big Class 데이터 테이블을 사용하는 예입니다.


귀하의 의견에 미리 감사드립니다!
그래프 빌더에서 이것을 수행하는 코드 없는 방법을 볼 수 없습니다. 이것은 좋은 제안이 될 수 있습니다. JMP 위시리스트 .
하지만 Fit Y by X에서 이것을 더 쉽게 달성할 수 있습니다. 빨간색 삼각형 메뉴에서 그룹화 기준...을 선택하여 그룹화 변수를 지정해야 합니다. 그런 다음 밀도 타원을 선택합니다. 그런 다음 플롯을 마우스 오른쪽 버튼으로 클릭하고 행 범례를 선택하여 그룹화 변수로 색상을 지정합니다.

다음은 세그먼트 찾기, 범례 서버 및 범례 표시가 있는 매우 지저분한 스크립트 예입니다...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Ellipse(X, Y, Legend(11)))
);
lgnd = gb << Get Legend Display;
server = gb << Get Legend Server;
items = lgnd << Get Items;
// get bars
legend_items1 = {};
legend_items2 = {};
For Each({item}, items,
If(item << get type == "Bar",
Insert Into(legend_items1, Num(Word(2, Word(1, Char(item), ","))));
Insert Into(legend_items2, Num(Word(2, Char(item), ",")));
//item << Set Visible(0);
);
);
fill_colors = {};
For Each({{item1, item2}, idx}, Across(legend_items1, legend_items2),
Eval(EvalExpr(item = server << Get Legend Item(Expr(item1), Expr(item2))));
Insert Into(fill_colors, Eval List({item << Get Fill Color}));
item << Set Properties(
{Transparency(1)}
);
);
fb = Report(gb)[Frame Box(1)];
segs = fb << Find Segs;
polysegs = Filter Each({seg}, segs, (seg << class name) == "PolySeg");
poly_i = 0;
For Each({item, idx}, polysegs,
polysegs[idx] << Line Color(fill_colors[idx]);
polysegs[idx] << Line Width(2);
polysegs[idx] << Fill Pattern("None");
);
Write();감사 @필_케이 Fit Y by X 플랫폼을 사용하는 해결 방법. 나는 당신의 조언을 따르고 위시리스트에 항목을 추가 할 것이라고 생각합니다!
그리고 고마워 @jthi 대본의 경우도 있어서 좋습니다!
@anne_sa 이 게시물을 위시리스트에 올렸습니다. 여기에 게시물이 있습니다. 타원 윤곽선만 표시하는 그래프 빌더 옵션 추가