그래프 빌더의 페이지 옵션을 사용하여 각 페이지에 참조선을 설정하는 방법은 무엇입니까?다음 스크립트는 그래프 빌더의 페이지 옵션으로 일부 차트를 플로팅합니다. 각 차트에 대해 수평 참조선을 설정하는 방법, 예를 들어 Weight = 80Kg에서 JSL을 사용하여 (80kg)으로 레이블을 지정하는 방법은 무엇입니까?
(차트의 수가 변경되어도 참조선은 그대로 유지되어야 합니다)
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 2954),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Page(:age)),
Elements(Points(X, Y, Legend(15)), Smoother(X, Y, Legend(16)))
);자동화 및 스크립팅윈도우Re: 그래프 빌더의 페이지 옵션으로 각 페이지에 참조선을 설정하는 방법?Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 2954),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Page(:age)),
Elements(Points(X, Y, Legend(15)), Smoother(X, Y, Legend(16)))
);
axis = gb << XPath( "//AxisBox" );
Summarize( page = By( :age ) );
axis[2::(2*NItems( page ))::2] << Add Ref Line( 80, "Solid", "Red", "Reference" );Re: 그래프 빌더의 페이지 옵션으로 각 페이지에 참조선을 설정하는 방법?@Mark_Bailey 아래와 같이 플로팅한 후 Age에 대한 로컬 데이터 필터를 호출하면 작동이 중단됩니다(JMP 16.2)

Re: 그래프 빌더의 페이지 옵션으로 각 페이지에 참조선을 설정하는 방법?가장 쉬운 방법은 각 행에 대해 동일한 값으로 데이터 테이블에 새 열을 추가하고 그래프에 추가하는 것입니다. 이것은 필터와 함께 작동합니다.
Re: 그래프 빌더의 페이지 옵션으로 각 페이지에 참조선을 설정하는 방법?@jthi 당신의 제안은 잘 먹힙니다. 다만 라인 라벨을 오른쪽에 두고 싶습니다. 라인 라벨의 위치를 바꿀 수 있는 방법이 있나요?
Re: 그래프 빌더의 페이지 옵션으로 각 페이지에 참조선을 설정하는 방법?요즘은 대부분 JMP18을 사용하고 있고(일부 JMP17도 섞여 있음) JMP16에서 어떤 옵션을 사용할 수 있는지 기억나지 않습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Ref", Numeric, Continuous, Set Each Value(80));
gb = dt << Graph Builder(
Size(528, 984),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Y(:Ref, Position(1)), Page(:age)),
Elements(
Points(X, Y(1), Legend(15)),
Smoother(X, Y(1), Legend(16)),
Line(Y(2), Legend(17))
),
Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 15}),
Display(:age, N Items(6))
)
),
SendToReport(
Dispatch({}, "400", ScaleBox,
{Legend Model(
17,
Level Name(0, "Ref", Item ID("Mean(Ref)", 1)),
Properties(
0,
{Line Label Properties(
{Name Label(1), Name Label Position("Last")}
)},
Item ID("Mean(Ref)", 1)
)
)}
)
)
);
Write();

Re: 그래프 빌더의 페이지 옵션으로 각 페이지에 참조선을 설정하는 방법?데이터 표를 변경할 필요가 없습니다.
축 설정을 복제하여
Link Page Axes( "Y Only" )
참조선도 복사합니다.
예를 들어
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Link Page Axes( "Y Only" ),
Variables( X( :height ), Y( :weight ), Page( :sex ), Overlay( :sex ) ),
Elements( Points( X, Y), Smoother( X, Y) ),
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line( 100, "Solid", "Black", "", 1 )}
)
)
);

Re: 그래프 빌더의 페이지 옵션으로 각 페이지에 참조선을 설정하는 방법?그것도 옵션이지만, 페이지의 이점 중 하나를 잃게 됩니다. 다른 "페이지"에 대해 다른 축 스케일링을 하는 것입니다. 여기서는 문제가 되지 않을 수도 있고 이점이 될 수도 있습니다.
Re: 그래프 빌더의 페이지 옵션으로 각 페이지에 참조선을 설정하는 방법?@jthi 감사합니다.
Name Label Position("Last")JMP 16.2에서는 사용할 수 없거나 작동하지 않는 것 같습니다.
@hogi Page 옵션을 선택한 이유는 다른 y축 스케일링을 얻을 수 있기 때문입니다. 다른 방법도 있겠지만 Page 옵션이 가장 쉬운 것 같습니다.
Re: 그래프 빌더의 페이지 옵션으로 각 페이지에 참조선을 설정하는 방법?그러면 Mark의 솔루션으로 돌아가서 필터 변경 핸들러를 사용해야 할 수도 있습니다. 이 옵션을 사용하는 JMP16의 제한 사항이 무엇인지 다시 한 번 알 수 없습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 984),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Page(:age)),
Elements(
Points(X, Y(1), Legend(15)),
Smoother(X, Y(1), Legend(16))
),
Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 15}),
Display(:age, N Items(6))
)
)
);
add_reflines = EvalExpr(
axis = Expr(gb) << XPath("//AxisBox");
axis[2::N Items(axis)::2] << Add Ref Line(80, "Solid", "Red", "Reference", 1, 1, Label Settings({Opposite Axis(1)}));
);
f = Function({a}, add_reflines);
ldf = (Report(gb) << top parent)[OutlineBox("Local Data Filter")] << Get Scriptable Object;
rs = ldf << Make Filter Change Handler(f);
add_reflines;
Write();
이것은 가장 강력한 옵션은 아니지만 비교적 간단한 방법입니다.
Re: 그래프 빌더의 페이지 옵션으로 각 페이지에 참조선을 설정하는 방법?그래픽 스크립트도 옵션이 될 수 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 984),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Page(:age)),
Elements(
Points(X, Y(1), Legend(15)),
Smoother(X, Y(1), Legend(16))
)
);
(Report(gb) << XPath("//FrameBox")) << Add Graphics Script(
Pen Color("Red");
Text Color("red");
Text(Right Justified, {X Origin() + X Range(), 80}, "Reference");
H Line(80);
);
gb << Local Data Filter(
Add Filter(
columns(:age),
Display(:age, N Items(6))
)
);
Write();