명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법안녕하세요. 제가 보고 있는 일부 데이터(JMP 11)를 모델링하는 방법에 대한 질문이 있습니다.
최종 목표: 명목 데이터 열의 값 개수(X)와 비교를 보여주는 차트를 표시합니다. 연속형 데이터 열(Y).
잡초에 대한 추가 정보 :
명목 데이터 열: DieNumber가 있습니다.
연속 데이터 열: ResDelta.
각 DieNumber 값 대신 X축에 표시된 각 DieNumber(예: 1, 2, 3)의 개수를 표시하고 싶지만, ResDelta(Continuous)가 Y축에 플롯될 때 Graph Builder에서 요약 통계를 N으로 전환합니다. Y를 요약하고 X의 각 값의 개수를 요약하지 않습니다.
내가 찾은 유일한 해결 방법은 ResDelta를 \[Y\]로 연결하고 DieNumber를 \[By\]로 연결하는 Overlay Plot 기능을 사용하는 것입니다. 그러나 이는 데이터를 하나의 차트에 모두 표시하려는 경우 각 차트를 개별적으로 분할합니다.
이 문제로 정말 어려움을 겪고 있으므로 어떤 도움이라도 주시면 감사하겠습니다. 감사합니다!윈도우Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법당신의 도움을 주셔서 감사합니다! 결과는 다음과 같습니다. 좀 더 정리를 하겠지만, 그게 다입니다!

Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법"이름"을 기준으로 데이터를 정렬하는 경우( @ih 예) 다음 공식은 JMP 11의 열 누적 합계를 제공합니다.
If(Lag(:Name) != :Name | Row() == 1, x = 0);
x++;
x
Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법이것은 매우 가깝습니다. JMP 11에는 Col Cumulative Sum()이 인수로 포함되어 있지 않은 것 같습니다. 하지만 그게 바로 제가 보려고 하는 그래프와 모델링의 유형입니다!
Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법아, 이 예를 통해 사용 사례를 명확하게 설명해 주셔서 감사합니다!내가 올바르게 이해했다면 Tim의 두 달리기를 나타내는 단일 지점이 아니라 모든 개별 트랙 시간이 별도의 지점으로 표시되기를 원할 것입니다.나는 지금까지 각 사람이 트랙을 돌았던 횟수를 세는 열을 만든 다음 이를 칼로리 소모량에 대해 플롯팅함으로써 이에 접근할 것입니다.
트랙 열 주위의 시간에 대한 공식은 다음과 같습니다(첫 번째 인수에 열 참조를 갖는 대신 숫자의 합을 계산하는 방법에 유의하세요).


차트를 다시 만드는 스크립트:
더보기... Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법도움을 주신 모든 분들께 감사드립니다. 이것이 명확해지면 이해하기 더 쉬울 수 있는 유사한 문제를 제시하고 싶습니다.
문제 예:
Tim, Alex, Sara는 트랙을 돌아다닙니다. 각 랩 후에는 소모된 칼로리를 측정합니다.
Tim은 칼로리 소모량: 각각 75, 155로 트랙을 2번 돌았습니다.
Alex는 60, 130, 195, 240cal의 칼로리 측정값을 가지고 4번 정도 달렸습니다.
Sara는 65, 125, 180, 235, 280cal의 측정값으로 5번 정도 달렸습니다.
(실행 횟수)와 (칼로리 소모량)을 어떻게 플롯합니까?
이것을 내 문제와 다시 연결하려면 다음을 수행하십시오.
(명목) 이름 = ChipDieNum,
(명목) 실행 횟수 = ChipDieNum 개수,
(연속) 소모된 칼로리 = Delta Res.
참고로 저는 모델링하고 싶은 데이터 항목이 8,000개 이상 있습니다.
Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법이것은 지금까지의 모든 솔루션 중에서 가장 가까운 솔루션이지만, 제가 가진 문제는 끝 그래프가 (ChipDieNum 개수) 대 (Res Delta)가 되어야 한다는 것입니다.
예를 들어:
ChipDieNum: 401은 저항 델타: -10200으로 교정을 3회 실행했습니다. -2000; -100옴. 데이터에서 ChipDieNum = (401), ChipDieNum 개수 = (3), Res Delta = (-10200,-2000,-100)
ChipDieNum: 510은 저항 델타: -13000, -2600으로 교정을 2회 실행했습니다. -200옴. ChipDieNum = (510), ChipDieNum 개수 = (2), & Res Delta = (-13000,-2600,-200)로 표시됩니다.
저는 칩의 Res Delta가 Res Delta(Y)에 대해 ChipDieNum 수(X)를 플로팅하여 교정을 실행한 횟수에 따라 증가한다는 상관 관계를 시도하고 있습니다. 다른 의미에서는 여러 Res Delta(Y) 값을 ChipDieNum이 Nominal이고 Res Delta가 Continuous인 각 ChipDieNum 값의 Count(X) 값과 연결하려고 합니다.
Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법다음은 제가 사용하는 대체 방법입니다. 생각하다 JMP 11에서 작동하며 연속 값을 표시합니다. 아래는 아마도 히스토그램을 사용하여 이 데이터를 표시하는 더 쉬운 방법일 것입니다.
방법 1
순서형 데이터 유형이 포함된 표와 x축의 누락된 값을 제외하는 로컬 데이터 필터를 사용하여 플롯할 점을 계산합니다. 그런 다음 새 데이터 테이블에서 데이터 유형을 다시 연속형 및 플롯으로 변경합니다.
- 다음과 같은 수식을 사용하여 새 열을 추가합니다. 최신 버전의 JMP에서는 열을 만들지 않고도 플랫폼 시작 대화 상자에서 바로 이 작업을 수행할 수 있습니다.

- 표를 열고 y 변수를 일시적으로 명목으로 변경한 후 다시 변경할 수 있습니다.
- 연령이 누락된 행을 제외하고 명목으로 설정한 후 '0'을 선택하려면 로컬 데이터 필터를 추가하세요.

- 데이터 테이블로 만들기
- 데이터 모델링 유형을 연속형으로 다시 변경
- 그래프

방법 2
그래프 빌더에서 y축만 사용하여 히스토그램을 만들고 x축에 누락된 값을 제외하는 로컬 데이터 필터를 추가합니다.
- x축 변수에 대해 동일한 '누락' 열을 만듭니다.
- 그래프 빌더에서 해당 열을 로컬 데이터 필터로 추가합니다.
- y 변수를 y축에 추가하세요. 연속형이어야 합니다.
- 그래프를 히스토그램으로 변경
- y축의 축 설정을 합리적인 것으로 변경합니다. 이는 여전히 일부 비닝을 수행하므로 여기 설정에 따라 높이 51.1과 51.2를 동일한 막대에 2로 결합할 수 있습니다.

Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법안녕 @Jakedahsnake ,
다른 회원들이 귀하의 문제에 대한 해결책을 찾으려고 노력한 것처럼 저도 토론을 바탕으로 다른 해결책을 시도하겠습니다.
첨부된 그래프를 생성하려면 다음 단계를 따르세요.
- Die ID로 새 열 "Count"를 만듭니다.
// New formula column: Count
Data Table( "dieexample" ) << New Formula Column(
Operation( Category( "Aggregate" ), "Count" ),
Columns( :ResDelta ),
Group By( :Die )
);
- 비교를 용이하게 하기 위해 "오버레이"의 다이 ID 정보와 상자 그림을 사용하여 포인트 수에 따른 ResDelta의 분포를 보여주는 그래프를 만듭니다(선택 사항이며 데이터 세트가 큰 경우 지저분할 수 있음).
Graph Builder(
Size( 984, 474 ),
Show Control Panel( 0 ),
Variables( X( :Count ), Y( :ResDelta ), Overlay( :Die ) ),
Elements( Points( X, Y, Legend( 10 ) ), Box Plot( X, Y, Legend( 12 ) ) ),
SendToReport(
Dispatch(
{},
"400",
LegendBox,
{Legend Position(
{10, [0, 1, 2, 3, 4], 12, [-1, -1, -1, -1, -1, -3, -3, -3, -3, -3]}
)}
)
)
);
이 작업이 완료되면 첨부된 그래프에 도달해야 합니다(그래프와 스크립트에 상자 그림을 추가했지만 목표에 유용하지 않은 경우 제거할 수 있습니다).

그래프 스크립트가 첨부된 데모에 사용한 데이터세트도 첨부했습니다.
이것이 당신에게 도움이 되기를 바랍니다.
Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법이것이 원하는 그래프라면

JMP 11에서 사용한 방법은 다음과 같습니다. 최신 버전에서는 더 쉬워질 것입니다.
먼저 수식을 사용하여 "count"라는 새 열을 만듭니다.
If(Lag(:Die) != :Die | Row() == 1, x = 0);
x++;
x
그러면 Label 상태가 Count 열에 적용됩니다.
각 행에는 레이블 상태가 설정되어 있습니다.이렇게 하면 값을 레이블로 표시할 수 있습니다.
ResDelta 열이 Y dop 영역으로 드래그됩니다.
주사위가 X 드롭 영역으로 드래그됩니다.
개수가 색상 드롭 영역으로 드래그됩니다.
이 마지막 단계가 완료되면 점의 색상이 흰색으로 변경되어 그래프에 표시되지 않습니다.색상을 변경하려면 범례의 각 색상 지점으로 이동하여 한 번에 하나씩 마우스 오른쪽 버튼을 클릭하고 색상을 흰색으로 변경하세요.
Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법ResDelta는 연속 데이터입니다. 또한 제어판의 포인트 드롭다운 옆에 빨간색 화살표가 없습니다. 어쩌면 JMP 11을 사용하고 있기 때문일 수도 있습니다.
Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법아아, 이제 알겠습니다.y축을 순서 또는 명목 데이터로 변경해야 합니다. 그 다음에 포인트의 빨간색 삼각형 아래에 요약할 반응 축을 선택합니다.어떤 경우에는 가장 가까운 정수로 반올림하여 먼저 데이터를 구간화해야 할 수도 있지만 귀하의 경우에는 Res Delta가 이미 정수인 것처럼 보입니다.

이제 어떤 이유로 이것을 실행할 때 x축 레이블이 엉망이 되었기 때문에 x축 설정으로 가서 수정해야 했습니다. 그래서 저는 이 스크립트가 작동해야 한다고 생각했습니다.
더보기...
Names Default To Here( 1 );
dt = Open( "$Sample_data/big class.jmp" );
dt:height << Set Modeling Type("Ordinal");
dt:age << Set Modeling Type("Ordinal");
Graph Builder(
Size( 502, 256 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements(
Points( X, Y, Legend( 3 ), Summary Statistic( "N" ), Response Axis( "X" ) )
)
);
이름의 기본값은 여기에 있습니다( 1 ); dt = Open( "$Sample_data/big class.jmp" ); dt:height << 모델링 유형 설정("서수"); dt:age << 모델링 유형 설정("서수"); 그래프 빌더( 크기( 502, 256 ), 제어판 표시( 0 ), 변수( X( :age ), Y( :height ) ), 요소( 점( X, Y, 범례( 3 )), 요약 통계( "N " ), 응답축( "X" ) ) ) );
하지만 대신 이것을 사용해야 했습니다:
더보기...
Names Default To Here( 1 );
dt = Open( "$Sample_data/big class.jmp" );
dt:height << Set Modeling Type("Ordinal");
dt:age << Set Modeling Type("Ordinal");
Graph Builder(
Size( 501, 256 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements(
Points( X, Y, Legend( 3 ), Summary Statistic( "N" ), Response Axis( "X" ) )
),
SendToReport(
Dispatch(
{},
"age",
ScaleBox,
{Label Row(
{Tick Mark( Label( "12" ), Label( "0" ) ),
Tick Mark( Label( "13" ), Label( "1" ) ),
Tick Mark( Label( "14" ), Label( "2" ) ),
Tick Mark( Label( "15" ), Label( "3" ) ),
Tick Mark( Label( "16" ), Label( "4" ) ),
Tick Mark( Label( "17" ), Label( "5" ) )}
)}
)
)
);
이름의 기본값은 여기에 있습니다( 1 ); dt = Open( "$Sample_data/big class.jmp" ); dt:height << 모델링 유형 설정("서수"); dt:age << 모델링 유형 설정("서수"); 그래프 빌더( 크기( 501, 256 ), 제어판 표시( 0 ), 변수( X( :age ), Y( :height ) ), 요소( 점( X, Y, 범례( 3 )), 요약 통계( "N " ), 응답 축( "X" ) ) ), SendToReport( Dispatch( {}, "age", ScaleBox, {Label Row( {Tick Mark( Label( "12" ), Label( "0" ) ), Tick Mark( Label( "13" ), Label( "1" ) ), Tick Mark( Label( "14" ), Label( "2" ) ), Tick Mark( Label( "15" ), Label( "3" ) ), Tick Mark( Label( "16" ), Label( "4" ) ), Tick Mark( Label( "17" ), Label( "5" ) )} )} ) ) );
Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법그렇게 해 보았지만 어떤 이유에서인지 JMP는 N을 X로 요약하는 대신 Y(연속 데이터이기 때문에)를 요약하므로 결국 다른 그래프가 표시됩니다.

ChipDieNumber의 개수가 표시되는 동안 이제 ResDelta 대신 Y에 플로팅됩니다.
Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법포인트 아래에서 요약 통계를 'N'으로 변경해 보세요.

나는 이것이 당신이 찾고있는 것을 제공한다고 생각합니다 :

다시 만들 스크립트:
더보기...
Names Default To Here( 1 );
dt = Open( "$Sample_data/big class.jmp" );
win = New Window("Example",
H List Box(
Graph Builder(
Size( 503, 256 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ), Summary Statistic( "N" ) ) )
),
Tabulate(
Show Control Panel( 0 ),
Add Table( Row Table( Grouping Columns( :age ) ) )
)
)
);
이름의 기본값은 여기에 있습니다( 1 ); dt = Open( "$Sample_data/big class.jmp" ); win = New Window("예제", H List Box( 그래프 빌더( 크기( 503, 256 ), 제어판 표시( 0 )), 변수( X( :age ), Y( :height ) ), Elements( Points( X , Y, 범례( 3 ), 요약 통계( "N" ) ) ) ), Tabulate( 제어판 표시( 0 ), 테이블 추가( 행 테이블( 열 그룹화( :age ) ) ) ) );
Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법따뜻하게 환영해 주셔서 감사드리며, 시간을 내어 이 문제를 조사해 주셔서 감사합니다! 나는 X와 Y에 변수를 내가 생각하는 방식으로 플롯했으며 여기에 내가 본 것이 있습니다.

이는 각 X(ChipDieNum)를 제외하고는 여러 Y 값(ResDelta)이 있을 수 있다는 점을 제외하면 거의 정확합니다. X 값을 표시하는 대신 각 X(ChipDieNum) 값의 개수를 표시하고 싶습니다.
앞서 언급했듯이 X는 명목형으로 설정되고 Y는 연속형으로 설정됩니다.
Re: 명목 데이터와 연속 데이터의 값 개수를 플롯하는 방법먼저, 커뮤니티에 오신 것을 환영합니다. 문제를 이해했는지 잘 모르겠지만 Die와 ResDelta라는 두 변수에 대해 가짜 숫자가 포함된 가짜 데이터 세트를 첨부했습니다. Graph Builder(녹색 화살표)용 스크립트를 저장했습니다. 그냥 클릭하세요. 이것이 당신이 찾고 있는 것인가요? 그런데 저는 V17을 사용하고 있어서 V11에서도 작동할지 잘 모르겠습니다... 스크립트는 다음과 같습니다.
Graph Builder(
Variables( X( :Die ), Y( :ResDelta ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
)