Re: 중첩/다중 데이터 필터 컨텍스트 상자제가 길을 잃은 것 같아요. 버블 플롯은 모든 소스 플롯에 의존하는 것 같습니다. 너 사실상 할 수 있다 당신의 " 데이터 필터 소스 상자 자체에 "최종" 플롯이 표시되지만 모든 원하지 않는 데이터는 선택되지 않거나 회색으로 표시됩니다.
Re: 중첩/다중 데이터 필터 컨텍스트 상자그렇다고 단정적으로 말할 수는 없지만 제가 제공한 코드의 구조를 보면 여러분의 구조를 지원하기 위해 코드를 확장할 수 있다고 상상할 수 있습니다.
샘플을 가져와 필터의 두 번째 수준에서 두 개의 다른 필터링 그래프로 분기할 수 있는지 확인합니다.
Re: 중첩/다중 데이터 필터 컨텍스트 상자이 방법으로 다른 플롯에 다른 하위 필터를 적용할 수 있습니까? 모든 플롯이 동일한 필터를 받는 것 같습니다.
서로 다른 플롯 세트에 적용된 일련의 독립적인(보이지 않는) 하위 필터가 있는 단일 기본 필터가 필요합니다. 이것을 더 잘 전달하기 위해 주석 처리된 "where" 필터로 원래 게시물을 업데이트했습니다.
Re: 중첩/다중 데이터 필터 컨텍스트 상자다음은 2 레벨 필터에 관한 토론의 예입니다.지난 포스트에서 제공한 예제의 확장입니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Shared Local Filter",
Data Filter Context Box(
H List Box(
Data Filter Source Box(
H List Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :age ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} ) )
),
Data Filter Source Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :sex ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} )
)
)
)
)
),
Platform(
Current Data Table(),
Bubble Plot( X( :weight ), Y( :height ), Sizes( :age ), Title Position( 0, 0 ) )
)
)
)
);Re: 중첩/다중 데이터 필터 컨텍스트 상자고마워 짐! 내가 뭔가를 오해하거나 간과하지 않는 한 이것은 첫 번째 그래프를 기반으로 두 번째 그래프만 필터링하는 것입니다. 첫 번째 그래프 외에 두 번째 그래프를 어떻게 필터링합니까?
즉 첫 번째를 기준으로 두 번째 그래프를 필터링하고 싶지만 첫 번째 필터의 데이터 하위 집합만 원합니다.
효과적으로 내가 원하는 것은 "Where( :ToolID == pTools[j] );" 변동성 차트로 이동하지만 이렇게 하면 데이터 필터 소스 상자(또는 제 경우에는 로컬 데이터 필터)를 완전히 무시합니다. 저는 실제로 가변성 차트에서 위의 "어디서" 줄을 제거한 후에만 데이터 필터 소스 상자에서 잘못된 작업을 수행했는지 알아내려고 오랜 시간을 보냈습니다.
Re: 중첩/다중 데이터 필터 컨텍스트 상자나는 당신이 원하는 것을 이해한다고 믿습니다.다음은 Scripting Index에서 직접 가져온 예입니다.
도움말==>스크립팅 색인==>DataFilterSourceBox
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Selection Filter",
Data Filter Context Box(
H List Box(
dfsb =
Data Filter Source Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :age ) ),
Elements(
Bar( X, Legend( 3 ) )
),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "Filter" )}
)
)
)
),
Platform(
Current Data Table(),
Bubble Plot(
X( :weight ),
Y( :height ),
Sizes( :age ),
Title Position( 0, 0 )
)
)
)
)
);
한 그래프에서 "클릭한 항목" 선택에 따라 다른 그래프를 필터링합니다.
중첩/다중 데이터 필터 컨텍스트 상자::편집:: 코드에 주석을 추가하고 시각화하는 데 도움이 되는 스크린샷을 포함했습니다.
중첩된 필터 컨텍스트 상자를 수행하거나 동일한 작업을 효과적으로 수행하는 무언가를 생성하는 것이 가능합니까? 기본적으로 보고서의 모든 플롯에 적용되는 상위 필터 세트를 원합니다. 해당 플롯 내의 보고서에는 표시되는 데이터를 제한하기 위해 고유한 특정 필터가 필요합니다.
다음과 같은 대화형 보고서가 있습니다.
(1) 두 개의 열로 나누어진 H 목록 상자.
(A) 첫 번째 열에는 두 번째 열의 모든 항목에 적용되는 필터 집합이 포함되어 있습니다.
(B) 두 번째 열에는 다양한 "도구 유형"에 대한 여러 탭이 있는 탭 상자가 있습니다.
(i) 각 탭에는 주어진 유형의 각 "도구"에 대한 가변성 차트 열이 있는 h 목록 상자가 포함되어 있습니다. 각 열에는 표시되는 "도구"를 제한하는 자체 필터가 필요합니다.
(a) 이 필터는 목록을 기반으로 하드 코딩되지만 VarCharts는 (A)의 필터를 기반으로 업데이트해야 합니다.
내가 찾은 것은 가변성 차트 내에 where()를 넣으면 (A)의 필터를 무시한다는 것입니다. 그런 다음 중첩 필터 컨텍스트 상자를 시도했지만 작동하지 않는 것 같습니다. 새 필터가 표시되지만 실제로는 가장 상위에 있는 필터만 수행합니다.
내 코드의 제거된/익명화된 버전을 만들려고 했기 때문에 몇 가지 오타가 있을 수 있습니다.
myRootPath = "C:\Log_Testing\"; myLogPath = myRootPath; myReportPath = myRootPath || "보고서\"; mypath = myRootPath || "로그\"; // 플롯할 I 도구 // 형식: ToolID iTools = {"i1", "i5"}; // 플롯할 P 도구 // 형식: ToolID pTools = {"p1", "p2"}; 현재 디렉토리 설정( mypath ); mainDt = Open( myLogPath || "Log.jmp" ); 배치 인터랙티브( 1 ); //배치 모드 dt_name = mainDt << get name(); dt_path = myLogPath; mainDt << 선택 지우기; filterContextBox = 데이터 필터 컨텍스트 박스(); spcWin = 새 창( dt_name || "_VarCharts", filterContextBox ); filterBox = H 목록 상자( mainDt << Data Filter( //조건부, 로컬, 필터 추가( columns( :WW,
), 디스플레이( :WW, 블록 표시 ), 디스플레이(
, 블록 표시 ), ), 모드( 선택( 0 ), 표시( 1 ), 포함( 1 ) ), ) ); filterContextBox << 추가( 필터박스 ); filterBox << 추가( tb = Tab Box() ); tb << Add( "P", hPTab = H List Box() ); tb << Add( "I", hITab = H List Box() ); numPTools = N 항목( pTools ); numITools = N 항목( iTools ); //P 플롯 생성 For( j = 1, j <= numPTools, j++, hPTab << Append( vToolBox = V List Box() ); vToolBox << Append( toolTab = Outline Box( pTools[j] ) ); ycol = "VariableName"; parseName = ""에 대한 가변성 차트 || ycol; toolTab << append( NewChart = 가변성 차트( Y( Column( ycol ) ), X( :WW,
), Max Iter( 100 ), Conv Limit( 0.00000001 ), Number Integration Abscissas( 128 ), Number Function Evals( 65536 ), Analysis Type( Name( "Choose best analysis (EMS REML Bayesian)" ) ), Connect Cell Means( 1 ), Std Dev Chart( 0 ), Points Jittered( 0 ), AIAG Labels( 0 ), 자동 재계산( 1 ),
/*다음 줄이 주석 처리되지 않은 경우 로컬 필터를 무시하고 이 필터만 사용합니다. 둘 다 필요합니다. */
여기서( :ToolID == pTools[j] ); SendToReport( Dispatch( {}, "Variability Gauge", OutlineBox, {Set Title( "" )} ), Dispatch( {parseName}, "2", ScaleBox( 2 ), {Format( "Fixed Dec", 4, 0 ), Min( 0 )} ), Dispatch( {parseName}, "Group Means", StringColBox, {Visibility( "Collapse" )} ), Dispatch( {parseName}, "", PlotColBox, {Visibility( "Collapse" ) } ) ) ) ); );
Re: 중첩/다중 데이터 필터 컨텍스트 상자나는 코드를 가지고 놀았지만 당신이 지정한 방식으로 코드를 작동시킬 수 없었습니다.
죄송합니다. 다른 커뮤니티 회원에게 아이디어가 있을 수 있습니다.
다음은 단일 선택 그래프에서 가져온 2개의 독립적인 경로가 있는 예입니다.....이것이 원하는 것에 가깝다고 생각합니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Potential",
Character,
"Nominal",
Set Values(
{"1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2",
"1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2"}
)
);
New Window( "Shared Local Filter",
Data Filter Context Box(
H List Box(
Data Filter Source Box(
H List Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :age ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} ) )
),
//Data Filter Context Box(
V List Box(
Data Filter Source Box(
H List Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Potential ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} ) )
),
Platform(
Current Data Table(),
Bubble Plot( Y( :weight ), X( :height ), Sizes( :age ), Title Position( 0, 0 ) )
)
),
),
Data Filter Source Box(
H List Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :sex ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} ) )
),
Platform(
Current Data Table(),
Bubble Plot( X( :weight ), Y( :height ), Sizes( :age ), Title Position( 0, 0 ) )
)
)
)
)
//)
)
)
)
)
);Re: 중첩/다중 데이터 필터 컨텍스트 상자고마워 짐! 나는 비슷한 것을 생각해 냈습니다. 선택하지 않은 점을 숨기거나 축소하는 방법을 찾으려고 했지만 가능성이 없는 것 같습니다.
또한 "by()"를 사용하고 별도의 SendToGroup()을 사용하여 각 ToolID를 반복하는 다른 방법에 도달했다고 생각합니다. 제목을 설정하는 것이 조금 더 복잡하지만 알아낸 후에 결과를 게시하겠습니다. 귀하의 모든 게시물이 완료되었으므로 향후 누군가에게 도움이 되기를 바랍니다.Re: 중첩/다중 데이터 필터 컨텍스트 상자귀하가 설명하는 것과 유사한 레이아웃의 두 가지 예를 첨부했습니다.
SFcrimeNestedFilter.jsl은 필터에서 계단식/계층적 동작을 얻기 위해 데이터 필터 컨텍스트 상자를 중첩하는 방법을 보여줍니다.이 접근 방식은 JMP 10+에서 작동하지만 탭 상자에 사용하는 구문은 JMP 13+입니다.
SFcrimeFilterWithWhere.jsl은 각 보고서에 대해 내부 필터를 Where() 절로 바꿉니다.이 유형의 레이아웃은 JMP 14에서 작동하지만 이전 릴리스에서는 작동하지 않았습니다.문제는 보고서가 하위 테이블을 사용하는 동안 필터가 전체 테이블을 사용한다는 것입니다.
이게 도움이 되길 바란다!
Re: 중첩/다중 데이터 필터 컨텍스트 상자이것은 내가 찾고있는 것과 정확히 일치하는 것 같습니다! 정말 고마워! 내 실수가 소스 상자를 전혀 사용하지 않은 것 같습니까?Re: 중첩/다중 데이터 필터 컨텍스트 상자Jim의 예에서 데이터 필터 소스 상자는 하나의 JMP 그래프를 사용하여 다른 그래프를 필터링하는 데 꼭 필요한 것입니다.원본 스크립트에서 데이터 필터 소스 상자를 볼 수 없었습니다. 주요 문제는 상위 테이블의 필터와 함께 Where() 절(하위 집합 테이블)을 사용하는 것이라고 생각합니다.
데이터 필터 소스 상자는 플랫폼을 필터로 사용해야 합니다. 내장된 데이터 필터 개체와 달리 필터 동작이 무엇인지 추론할 수 없기 때문입니다.