그래프 빌더 누적 막대 차트첨부된 JMP 17은 총 부품 수, 총 실패, 총 실패 % 및 매개변수가 실패한 개별 숫자를 월별로 포함하는 간단한 데이터 테이블입니다. 내가 원하는 누적 막대 차트는 X축에 월, Y축에 총 실패율(%)입니다. 그런 다음 해당 막대를 각 매개변수의 월간 백분율로 실패한 매개변수를 분석하여 누적하고 싶습니다. 아래는 제가 ppt로 그린 것의 스크린샷입니다(그림 1 참조). 그래프 빌더에서는 이것을 얻을 수 없습니다. 데이터를 쌓고 열을 조작하려고 시도했지만 진행되지 않았습니다.
요약하자면 Y축에 실패한 부품의 전체 총 %를 막대로 표시한 다음 해당 막대에 매월 실패한 각 매개 변수의 백분율을 표시하려고 합니다. 샘플 데이터 표는 아래에 첨부되어 있습니다. 감사합니다.
그림 1

데이터 탐색 및 시각화윈도우Re: 그래프 빌더 누적 막대 차트짐:
당신의 응답을 주셔서 감사합니다. 나는 다중 시리즈 스택 옵션을 몰랐기 때문에 좋은 팁입니다. 생성한 그래프의 유일한 문제는 Y축이었습니다. 막대의 전체 높이로 월별 총 %를 찾고있었습니다. 따라서 1월에는 10%, 2월에는 4%, 3월에는 15%가 됩니다. Y축은 월간 전체 실패율입니다. 그런 다음 각 막대는 실패한 매개변수의 백분율로 세분화됩니다. 1월 10% 전체 막대는 20% Parm 1 / 80% Parm 2로 세분화됩니다. 2월 4% 전체 막대는 16.7% Parm 1 / 50% Parm 2 / 33.3% Parm 3으로 세분화됩니다. 그런 다음 3월 15% 전체 막대는 37% Parm 1 / 29.6% Parm 2 / 33.3% Parm 3으로 세분화됩니다. 아직은 Graph Builder를 통해 테이블을 조정할 수 없기 때문에 테이블을 추가로 조정해야 할 수도 있습니다. 다시 한 번 감사드립니다.
Re: 그래프 빌더 누적 막대 차트원하는 차트를 사용하려면 데이터 테이블의 구조와 일부 데이터 테이블 RowStates 및 Column States의 설정을 변경해야 합니다.

아래 스크립트는 데이터 테이블의 구조를 변경한 후 위와 같은 최종 그래프를 그립니다.스크립트의 모든 작업은 대화형으로 수행될 수 있습니다.실제로 모든 작업은 대화형으로 수행되었으며 JMP에서 제공한 스크립트를 가져와 하나의 최종 스크립트에 복사했습니다.
Names Default to here(1);
dt = current data table();
dtStack = dt <<
Stack(
columns(
:Parm 1 # Fails, :Parm 2 # Fails, :Parm 3 # Fails, :Parm 1 % Fail,
:Parm 2 % Fail, :Parm 3 % Fail
),
Source Label Column( "Parameter" ),
Stacked Data Column( "Counts" ),
Number of Series( 2 ),
Contiguous
);
// Change the name of the column that has the % values
dtStack:Counts 2 << set name("Percent");
// Divide each row value for the percent column to conform
// to the percent values for a JMP column
for each row(
:Percent = :Percent / 100;
);
// Change the display format for the percent column to
// display a % sign in the values
dtStack:Percent << format("Percent", 7, 0);
// A column needs to be set to have the correct display values for
// the legend. Also, the alphabetical ordering will determine the
// order of the subbar values. So recode the column to meet those
// specifications
// Recode column: Parameter
Local( {dt},
dt = dtStack;
dt << Begin Data Update;
dt << Recode Column(
dt:Parameter,
{Map Value(
_rcOrig,
{"Parm 1 # Fails", "3. Parm 1", "Parm 2 # Fails", "2. Parm 2",
"Parm 3 # Fails", "1. Parm 3"},
Unmatched( _rcNow )
)},
Update Properties( 1 ),
Target Column( :Parameter )
);
dt << End Data Update;
);
// Label column: Percent to be used to label the graph
dtStack:Percent << Label( 1 );
// Label all rows to show which values from the percent column
// to label
dtStack << Select All Rows << Label(1);
dtStack << clear selection;
dtStack << invert row selection;
// Draw the graph
Graph Builder(
Size( 528, 450 ),
Show Control Panel( 0 ),
Variables( X( :Month ), Y( :Counts ), Overlay( :Parameter ) ),
Elements(
Bar( X, Y, Legend( 7 ), Bar Style( "Stacked" ), Label( "Label by Row" ) )
),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
7,
Properties(
0,
{Fill Color( 73 )},
Item ID( "1. Parm 3", 1 )
),
Properties(
1,
{Fill Color( 25 )},
Item ID( "2. Parm 2", 1 )
),
Properties(
2,
{Fill Color( -7183127 )},
Item ID( "3. Parm 1", 1 )
)
)}
)
)
);
다음은 최종 차트를 생성하는 데 사용된 재구성된 데이터 테이블입니다.

Re: 그래프 빌더 누적 막대 차트짐:
마침내 Graph Builder를 통해 작업할 수 있는 것이 생겼습니다. 제공해 주신 솔루션에 감사드립니다. 당신이 지적한 Multiple Series는 이 연습의 코드뿐만 아니라 앞으로 큰 도움이 됩니다. 다시 감사합니다.
Re: 그래프 빌더 누적 막대 차트합계의 %로 변경하는 것은 간단한 수학 공식으로, 누적된 데이터 테이블에 열을 제공합니다.방금 % of Total이라는 새 열을 추가한 다음 그래프에서 Y축으로 사용했습니다.

Names Default To Here( 1 );
dt = Current Data Table();
dtStack = dt << Stack(
columns(
:Parm 1 # Fails, :Parm 2 # Fails, :Parm 3 # Fails, :Parm 1 % Fail,
:Parm 2 % Fail, :Parm 3 % Fail
),
Source Label Column( "Parameter" ),
Stacked Data Column( "Counts" ),
Number of Series( 2 ),
Contiguous
);
// Change the name of the column that has the % values
dtStack:Counts 2 << set name( "Percent" );
dtStack << New Column( "% of Total", Format( "Percent", 7, 0 ) );
// Divide each row value for the percent column to conform
// to the percent values for a JMP column
For Each Row(
:Percent = :Percent / 100;
:"% of Total"n = :counts / :Total Fails * (:total % Fail / 100);
);
// Change the display format for the percent column to
// display a % sign in the values
dtStack:Percent << Format( "Percent", 7, 1 );
// A column needs to be set to have the correct display values for
// the legend. Also, the alphabetical ordering will determine the
// order of the subbar values. So recode the column to meet those
// specifications
// Recode column: Parameter
Local( {dt},
dt = dtStack;
dt << Begin Data Update;
dt << Recode Column(
dt:Parameter,
{Map Value(
_rcOrig,
{"Parm 1 # Fails", "3. Parm 1", "Parm 2 # Fails", "2. Parm 2",
"Parm 3 # Fails", "1. Parm 3"},
Unmatched( _rcNow )
)},
Update Properties( 1 ),
Target Column( :Parameter )
);
dt << End Data Update;
);
// Label column: Percent to be used to label the graph
dtStack:Percent << Label( 1 );
// Label all rows to show which values from the percent column
// to label
dtStack << Select All Rows << Label( 1 );
dtStack << clear selection;
dtStack << invert row selection;
// Draw the graph
Graph Builder(
Size( 528, 450 ),
Show Control Panel( 0 ),
Variables( X( :Month ), Y( :"% of Total"n ), Overlay( :Parameter ) ),
Elements(
Bar( X, Y, Legend( 7 ), Bar Style( "Stacked" ), Label( "Label by Row" ) )
),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
7,
Properties( 0, {Fill Color( 73 )}, Item ID( "1. Parm 3", 1 ) ),
Properties( 1, {Fill Color( 25 )}, Item ID( "2. Parm 2", 1 ) ),
Properties(
2,
{Fill Color( -7183127 )},
Item ID( "3. Parm 1", 1 )
)
)}
)
)
);