JSL에서 그래프릿의 라벨을 제거하는 데 도움이 필요합니다.안녕하세요,
그래프 빌더에 여러 가지 지표 평균(선)을 표시하고 개별 지표(점)를 포함한 그래프렛을 생성하는 스크립트가 있습니다.
[1] - 그래프렛에서 라벨을 제거하고 싶은데 지금까지는 성공하지 못했습니다.

이 예제(아래 스크립트)에서는 "Position2 및 Mean()" 라벨을 제거하고 그래프(자체 표기법 포함)만 유지하고 싶습니다.
스크립팅 가이드에 따르면 Gridlet(P 704)이 필요한 것으로 보이지만 제가 시도한 모든 것은 실패했습니다.
[2] - 첫 번째 그래프의 선이 서로 가까이 있을 때(예시: :Speed 및 :Height) 개별 데이터가 있는 그래프 빌더를 열기 위해 마우스를 움직여 그래프렛을 클릭하려고 하면 그래프렛이 사라지는 경향이 있습니다. "선을 가리킨 다음 그래프렛을 가리킨 다음 클릭" 대신 "클릭"하여 직접 여는 옵션이 있습니까? (스크립팅 가이드 P696에는 "클릭" 옵션이 언급되어 있지만 명확하지 않습니다)
이 문제에 대해 도와주실 수 있나요?
미리 감사드립니다
-설교자
아래 내 마지막 "안정된" 버전을 참조하세요.
Names Default To Here( 1 );
dt = Open( "$sample_data\Football.jmp" );
y_values = {"Height", "Weight", "Fat", "Speed"};
RelEventCol = "Position2";
variables_expr = Eval Expr( Variables( X( As Column( dt, Expr( RelEventCol ) ) ) ) );
Show( variables_expr );
For Each( {y_col}, y_values,
temp_expr = Expr( Y() );
Insert Into( temp_expr, Name Expr( As Column( dt, y_col ) ) );
Insert Into( temp_expr, Name Expr( Position( 1 ) ) );
Insert Into( variables_expr, Name Expr( temp_expr ) );
);
Show( variables_expr );
gb_expr = Expr(
Graph Builder( Show Control Panel( 0 ) )
);
temp_expr3 = Expr( Line() );
Insert Into( temp_expr3, Name Expr( X ) );
For Each( {y_col, idx}, y_values,
temp_expr2 = Expr( Y() );
Insert Into( temp_expr2, idx );
Insert Into( temp_expr3, Name Expr( temp_expr2 ) );
);
Show( temp_expr3 );
Insert Into( temp_expr3, Name Expr( Legend( 7 ) ) );
Show( temp_expr3 );
temp_expr4 = Expr( Elements() );
Insert Into( temp_expr4, Name Expr( temp_expr3 ) );
Show( temp_expr4 );
Insert Into( gb_expr, Name Expr( variables_expr ) );
Insert Into( gb_expr, Name Expr( temp_expr4 ) );
Insert Into(
gb_expr,
Name Expr(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Set Graphlet(
Picture(
dt << Graph Builder(
Size( 800, 700 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( As Column( dt, Expr( RelEventCol ) ) ), Y( Column( local:_measurements ) ) ),
Elements( X, Y )
);
),
Skip Filters( 1, Column( dt, Name Expr( RelEventCol ) ) )
)
}
)
)
);
Show( gb_expr );
Eval( gb_expr );자동화 및 스크립팅기본 데이터 분석 및 모델링Re: JSL에서 그래프릿의 라벨을 제거하는 데 도움이 필요합니다.호버 레이블은 아마도 여러분이 찾고 있는 것입니다 https://www.jmp.com/support/help/en/18.1/index.shtml#page/jmp/hover-labels.shtml# . 클릭의 목적은 사용자가 호버 레이블의 썸네일을 클릭할 때 트리거하는 것입니다.
Re: JSL에서 그래프릿의 라벨을 제거하는 데 도움이 필요합니다.몇 주 전에 호버 라벨의 원치 않는 부분을 제거하는 방법을 찾았습니다. 다음은 그 방법 중 하나입니다.
Names Default To Here( 1 );
dt = Open( "$sample_data\Football.jmp" );
y_values = {"Height", "Weight", "Fat", "Speed"};
RelEventCol = "Position2";
variables_expr = Eval Expr( Variables( X( As Column( dt, Expr( RelEventCol ) ) ) ) );
Show( variables_expr );
For Each( {y_col}, y_values,
temp_expr = Expr( Y() );
Insert Into( temp_expr, Name Expr( As Column( dt, y_col ) ) );
Insert Into( temp_expr, Name Expr( Position( 1 ) ) );
Insert Into( variables_expr, Name Expr( temp_expr ) );
);
Show( variables_expr );
gb_expr = Expr(
Graph Builder( Show Control Panel( 0 ) )
);
temp_expr3 = Expr( Line() );
Insert Into( temp_expr3, Name Expr( X ) );
For Each( {y_col, idx}, y_values,
temp_expr2 = Expr( Y() );
Insert Into( temp_expr2, idx );
Insert Into( temp_expr3, Name Expr( temp_expr2 ) );
);
Show( temp_expr3 );
Insert Into( temp_expr3, Name Expr( Legend( 7 ) ) );
Show( temp_expr3 );
temp_expr4 = Expr( Elements() );
Insert Into( temp_expr4, Name Expr( temp_expr3 ) );
Show( temp_expr4 );
Insert Into( gb_expr, Name Expr( variables_expr ) );
Insert Into( gb_expr, Name Expr( temp_expr4 ) );
Insert Into(
gb_expr,
Name Expr(
Dispatch( {}, "Graph Builder", FrameBox,
{Set Graphlet(
Picture(
dt << Graph Builder(
Size( 800, 700 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( As Column( dt, Expr( RelEventCol ) ) ), Y( Column( local:_measurements ) ) ),
Elements( X, Y )
);
),
Skip Filters( 1, Column( dt, Name Expr( RelEventCol ) ) )
), Set Gridlet(
Expunge(
{{Matcher( "Position2" )}, {Matcher( "Mean(Height)" )}, {Matcher( "Mean(Weight)" )}, {Matcher( "Mean(Fat)" )},
{Matcher( "Mean(Speed)" )}}
)
) //Removes these from the default gridlet
}
)
)
);
Show( gb_expr );
Eval( gb_expr );Re: JSL에서 그래프릿의 라벨을 제거하는 데 도움이 필요합니다."Mean(..." 값 목록 대신 이것을 사용해야 할 것입니다. 이름에 "Mean"이 포함된 모든 것을 제거합니다.
{Matcher( Pat Regex( "Mean" ) )}
Re: JSL에서 그래프릿의 라벨을 제거하는 데 도움이 필요합니다.여러분의 도움에 감사드립니다.
잘 작동합니다:)
- 설교자