그래프 빌더, 원형 플롯: 특정 요소가 있는 그룹을 필터링할 때 그룹의 모든 요소를 유지하는 방법은 무엇입니까?안녕,
Graphic Builder에서 도움을 구하고 있습니다. JMP 16.2.0을 사용하고 있습니다.
두 개의 열(레시피, 재료)이 있는 표를 예로 들어보겠습니다. 레시피는 여러 재료로 구성되며, 재료는 여러 레시피에 사용될 수 있습니다. 표는 첨부 파일에 제공됩니다.
그래프 빌더에서 그룹 X에 '요리법'을, X에 '재료'를 입력한 뒤 원형 플롯을 선택하여 각 요리법에 어떤 재료가 사용되었는지 확인합니다.

제가 하고 싶은 것은 재료를 선택하면 해당 재료를 사용하는 모든 레시피의 파이 플롯이 유지되는 것입니다. 파이 플롯은 모든 재료를 표시해야 합니다.
예를 들어, 저는 Milk를 사용하는 모든 레시피를 보고 싶습니다. 레시피에 로컬 데이터 필터를 추가하면 파이 플롯에 Bechamel and Pancake의 모든 재료가 표시되지 않습니다.

내가 원하는 출력은 다음과 같습니다.

JSL을 쓰지 않고도 쉽게 할 수 있는 방법이 있나요? 테이블을 수정하거나 Graph Builder로 작업할 수 있습니다.
감사합니다 !
데이터 탐색 및 시각화Re: 그래프 빌더, 원형 플롯 : 특정 요소가 있는 그룹을 필터링할 때 그룹의 모든 요소를 유지하는 방법은 무엇입니까?JMP16에서 이 작업을 수행할 수 있는지 확실하지 않습니다(저는 JMP18을 사용하고 있습니다). 하지만 재료에 대한 여러 응답 열을 생성할 수 있습니다.


테이블 스크립트가 첨부된 테이블
Re: 그래프 빌더, 원형 플롯 : 특정 요소가 있는 그룹을 필터링할 때 그룹의 모든 요소를 유지하는 방법은 무엇입니까?답변 감사합니다. 정말 좋은 해결책 같아요.
불행히도 JMP 16에서는 작동하지 않습니다.

아마 최신 버전으로 업데이트해야 할 것 같아요!
Re: 그래프 빌더, 원형 플롯 : 특정 요소가 있는 그룹을 필터링할 때 그룹의 모든 요소를 유지하는 방법은 무엇입니까?스크립팅도 옵션이지만 피하고 싶다고 하셨으므로 JMP16에서 작동할 수 있는 옵션이 있습니다(선택 행 상태를 활용하기 때문에 사용하기 약간 불편할 수 있음). 로컬 데이터 필터 대신 데이터 필터를 사용할 수 있다면 다음과 같이 할 수 있습니다.
다음과 같은 수식 열을 만듭니다.

Col Sum(Selected(), :Recipe) >= 1
성분을 사용하여 데이터 필터(로컬 데이터 필터 아님)를 만듭니다.

새로 만든 수식 열을 사용하여 로컬 데이터 필터로 그래프를 만들고 값을 1로 설정합니다.

그런 다음 로컬 데이터 필터를 축소하고 창을 나란히 구성할 수 있습니다.

여기서 약간 짜증나는 점은 선택 항목이 있는데, 테이블이나 데이터 필터 외부에서 무언가를 선택하면 문제가 발생한다는 것입니다.
Re: 그래프 빌더, 원형 플롯 : 특정 요소가 있는 그룹을 필터링할 때 그룹의 모든 요소를 유지하는 방법은 무엇입니까?데이터 테이블을 새 행과 새 열로 수정하면 JMP 16에서 작동하도록 할 수 있습니다. 레시피의 각 재료에 대한 각 재료 조합에 대해 새 행을 만들어야 합니다. 예를 들어 우유, 밀가루, 버터가 들어간 베샤멜의 경우

확장되어야 합니다


확장된 데이터 테이블을 생성하는 스크립트는 다음과 같습니다.
names default to here(1);
dt=current data table();
// Start the new table
dtOut = New Table( "Expanded",
New Column( "Recipe", Character ),
New Column( "Ingredient", Character ),
New Column( "Ingredients", Character )
);
// Find the different Recipies
summarize( dt, Recipies = By(:Recipe));
// Loop through the recipies
For Each( {rec}, Recipies,
// Find the ingredients for the current recipe
dt << select where(:Recipe == rec );
dtTemp = dt << subset( selected columns(0), selected rows(1));
summarize( dtTemp, ingre=by(:ingredient));
// Loop across each ingredient and add the rows to the data table
For Each( {item}, ingre,
dtTemp << New Column("Ingredients", character, set each value(item));
dtOut << concatenate( dtTemp, Append to First Table(1) );
dtTemp << delete columns(:Ingredients);
);
close( dtTemp, nosave );
);Re: 그래프 빌더, 원형 플롯 : 특정 요소가 있는 그룹을 필터링할 때 그룹의 모든 요소를 유지하는 방법은 무엇입니까?GraphBuilder + 다중응답 : 정말 유용해요!
JMP17에서 사용 가능: JMP 17 및 JMP Pro 17의 새로운 기능 - 몇 가지 하이라이트 원본 영어 버전
업그레이드는 무료입니다. 2단계를 밟아서 JMP18의 모든 훌륭한 기능을 얻는 건 어떨까요?
Re: 그래프 빌더, 원형 플롯 : 특정 요소가 있는 그룹을 필터링할 때 그룹의 모든 요소를 유지하는 방법은 무엇입니까?@jthi @txnelson 두 분 모두 창의적인 솔루션을 내주셔서 감사합니다. 스크립트를 실제 데이터에 맞게 조정하여 필요할 때 실행하도록 하겠습니다.
@hogi JMP 업데이트를 추진하겠습니다!
좋은 주말 보내세요!