Global Box를 통해 축 제한을 업데이트하는 방법안녕하세요,
전역 상자를 통해 그래프의 Y축 제한을 제어하고 싶습니다(사용자가 축 속성을 두 번 클릭하지 않고도 제한을 빠르게 변경할 수 있도록...).
첨부된 스크립트에서 윈도우와 그래프를 생성합니다. 그런 다음 초기화하는 2개의 글로벌 박스(Lim1 및 Lim2)를 추가합니다.
그래프가 생성되면 Lim1과 Lim2의 값을 수정하지만 그에 따라 그래프 축이 업데이트되지 않습니다...제가 뭘 잘못하고 있는지 모르겠습니다.
누군가 도울 수 있습니까?
감사해요.
Re: Global Box를 통해 축 제한을 업데이트하는 방법매우 유사한 작업을 수행하려는 귀하의 질문을 발견했습니다 (이상 값을 놓치지 않도록 많은 그래프의 데이터로 축 제한 설정). 평가할 표현식에 축 제한을 설정하여 해결했습니다(즉, 최소값과 동일함 - LSL 또는 최저 데이터 포인트, 최대값과 반대임). 아래를 참조하십시오.
// Get min/max for Graph 1
dt = Current Data Table();
G1 = dt << Get Rows Where (:Column 1 == "Group1");
G1_Min = Eval( Min((LSL[1]*0.95), Min(:Column 2[G1])));
G1_Max = Eval( Max((USL[1]*1.05), Max(:Column 2[G1])));
dt << clear select;
// Get min/max for Graph 2 etc. repeat for each graph
dt = Current Data Table();
G2 = dt << Get Rows Where (:Column 1 == "Group2");
G2_Min = Eval( Min((LSL[2]*0.95), Min(:Column 2[G2])));
G2_Max = Eval( Max((USL[2]*1.05), Max(:Column 2[G2])));
dt << clear select;
// Assign axis limits and specification lines within the graph parameters (for Graph 1 - repeat for each)
Dispatch ({Min(G1_Min), Max(G1_Max), Inc( Eval((G1_Max - G1_Min) / 7))),
Add Ref Line( LSL[1], "Solid", "Medium Dark Blue", "LSL", 1 ),
Add Ref Line( USL[1], "Solid", "Medium Dark Blue", "USL", 1 )}* 참고: 귀하의 문제가 4년 동안 해결된 것으로 알고 있지만 유사한 문제를 가진 다른 사람들에게 도움이 될 수 있습니다.
Re: Global Box를 통해 축 제한을 업데이트하는 방법넬슨, 제프,
나는 당신의 추론을 이해합니다 : 축의 대화식 플랫폼 (끌기, 이동, ...)을 사용하는 것은 실제로 매우 유용합니다 ... 그러나 몇 가지 이유로 도움이되지 않습니다.
- 내가 생성할 대부분의 그래프에는 나머지 모집단보다 훨씬 높은 값을 갖는 이상값이 포함됩니다. 이 경우 대화형 솔루션은 시간이 많이 걸리고 고통스럽습니다...
- 단일 창에서 30개 정도의 그래프를 생성하려고 합니다. 30개 그래프를 대화식으로 변경하는 것은 옵션이 아니라고 상상할 수 있습니다. 모든 값을 설정하기 위해 상자 또는 두 개의 상자를 갖는 것이 더 시간 효율적입니다.
어쨌든 Nelson의 솔루션이 제대로 작동하는 것을 볼 수 있습니다. 큰 콤플렉스처럼 보입니다. 수행되는 작업을 자세히 살펴봐야 합니다.
정말 감사합니다.
Re: Global Box를 통해 축 제한을 업데이트하는 방법모든 것이 무엇을 하고 있는지 확신할 수 없었기 때문에 형식을 약간 변경했습니다. 그러나 아래는 귀하가 질문하는 항목을 일반적으로 처리하는 방법의 예입니다. 내 더 큰 질문은 실제로 최소값과 최대값을 입력하는 것보다 사용자를 위해 축 설정을 더 간단하게 드래그하고 이동하는 것이 더 간단하지 않습니까?
Names Default To Here( 1 );
//DataPath = "C:\Program Files (x86)\SAS\JMP\11\Samples\Data\Variability Data\Wafer.jmp";
myTable = Open( "$SAMPLE_DATA\Variability Data\Wafer.jmp" );
Param = "Y";
Lim1 = 40;
Lim2 = 160;
FrameSize_X = 775;
FrameSize_Y = 200;
MyWindow = New Window( "Window Controls",
gr = MyTable << Variability Chart(
Y( :Name( "Y" ) ),
X( :Operator, :Wafer ),
Max Iter( 100 ),
Std Dev Chart( 1 ),
Show Range Bars( 0 ),
Show Grand Median( 0 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
Automatic Recalc( 1 ),
SendToReport(
Dispatch(
{"Variability Chart for Y"},
"2",
ScaleBox,
{Min( Lim1 ), Max( Lim2 ), Inc( Abs( Lim2 - Lim1 ) / 10 ), Minor Ticks( 0 ),
Show Major Grid( 1 ), Show Minor Grid( 1 ), Inside Ticks( 1 )}
),
Dispatch( {"Variability Chart for Y"}, "Y", TextEditBox, {Set Text( Param )} ),
Dispatch(
{"Variability Chart for Y"},
"Variability Chart",
FrameBox,
{Frame Size( FrameSize_X, FrameSize_Y ), ,
Row Legend(
Name( "Operator" ),
Color( 1 ),
Color Theme( "JMP Default" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
),
Dispatch(
{"Variability Chart for Y"},
"Varability Std Chart",
FrameBox,
{Frame Size( FrameSize_X, FrameSize_Y )}
)
)
),
Panel Box( "1/ Start...",
g3 = V List Box(
H List Box(
Text Box( "Lim 1" ),
n1 = Number Edit Box(
Lim1,
5,
<<SETFUNCTION></SETFUNCTION>Re: Global Box를 통해 축 제한을 업데이트하는 방법문제는 그래프가 생성될 때 축을 설정하기 위해 전역 변수가 사용되지만 그 이후 그래프는 전역 변수와 아무런 관계가 없다는 것입니다.
찾고 있는 상호작용을 만드는 방법이 있지만(여기 누군가가 프로토타입을 제공할 수 있다고 확신합니다) 간과하지 마십시오. 내장된 상호 작용 JMP에서 모든 그래프의 축. 축 위로 마우스를 가져가기만 하면 커서가 손 모양으로 바뀌고 클릭하고 드래그하여 축을 변경할 수 있습니다.

사용자에게 이것을 가르친다면 훌륭한 서비스를 제공할 수 있습니다.이렇게 하면 사용자가 생성한 그래프뿐만 아니라 JMP에서 볼 수 있는 모든 그래프를 제어할 수 있고 편리한 텍스트 상자 컨트롤을 제공할 수 있습니다.