안녕하세요,
그래프 빌더를 사용하여 합계뿐만 아니라 각 누적 막대에 대한 레이블이 있는 누적 막대 차트를 만들려고 합니다.아래 이미지는 각 막대의 총계를 수동으로 삽입한 그래프의 마크업 버전입니다.(임베디드 그래프 빌더 스크립트와 함께 사용한 샘플 JMP 데이터 세트가 첨부되어 있습니다.)
그래프 빌더/다른 플랫폼 또는 JSL 스크립팅을 통해 이 뷰를 생성하는 방법이 있는지 아는 사람이 있습니까?
감사해요,
AW

@txnelson , @gzmorgan0
이 문제를 해결하기 위한 빠른 답변과 창의적인 방법에 대해 대단히 감사합니다!매주 ~100개의 서로 다른 프로젝트에 대해 이러한 플롯을 순환하고 생성해야 한다는 점을 언급하지 않았습니다.그래서 gzmorgan0에서 제공하는 스크립트가 저에게 더 잘 맞는 것 같아요. 방금 사용해 보았고 내 요구에 완벽하게 작동합니다.다시 한번 감사합니다!
@AW ,
@txnelson 좋은 솔루션을 제공했습니다. 레이블에 약간의 스크립팅이 필요합니다.다음은 GraphBuilder를 사용하는 또 다른 방법입니다.저장된 스크립트(아래)를 통해 패턴을 보는 것이 더 쉽다고 생각합니다. 이는 UI를 통해 수행하고 오버레이 변수를 끌 수 있습니다. 그래프에는 3가지 요소가 있습니다.
- 오버레이 변수를 사용하는 누적 막대
- 오버레이 변수를 사용하지 않는 막대
- 오버레이 변수를 사용하지 않는 요약 통계 합계가 있는 캡션
참고 데이터 테이블을 내 c:/temp/ 드라이브에 저장했습니다. Caption elemnet에는 Jim의 솔루션이 제공하는 배치 유연성이 없습니다.
Names Default to Here(1);
dt = open("C:/temp/Sample Dataset for Stacked Graph Builder Bar Chart.jmp");
gb = dt << Graph Builder(
Size( 534, 492 ),
Show Control Panel( 0 ),
Variables(
X( :Test_Step_Duration ),
Y( :Test ),
Group X( :Sample Information ),
Overlay( :Test_Step )
),
Elements(
Bar(
X,
Y,
Overlay( 0 ),
Legend( 11 ),
Bar Style( "Stacked" ),
Summary Statistic( "Sum" )
),
Caption Box(
X,
Y,
Overlay( 0 ),
Legend( 13 ),
Summary Statistic( "Sum" ),
Per Factor( 1 )
),
Bar( X, Y, Legend( 14 ), Bar Style( "Stacked" ), Label( "Label by Value" ) )
),
Local Data Filter(
Add Filter( columns( :Project ), Where( :Project == "Project 1" ) )
),
SendToReport(
Dispatch(
{},
"Test_Step_Duration",
ScaleBox,
{Label Row( Show Major Grid( 1 ) )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
11,
Properties(
-1,
{Transparency( 0.1 )},
Item ID( "Sum(Test_Step_Duration)", 1 )
)
), Legend Model(
14,
Properties( 0, {Fill Color( 69 )}, Item ID( "Step 1", 1 ) ),
Properties( 1, {Fill Color( 67 )}, Item ID( "Step 2", 1 ) ),
Properties( 2, {Fill Color( 36 )}, Item ID( "Step 3", 1 ) ),
Properties( 3, {Fill Color( 40 )}, Item ID( "Step 4", 1 ) ),
Properties( 4, {Fill Color( 38 )}, Item ID( "Step 5", 1 ) ),
Properties( 5, {Fill Color( 39 )}, Item ID( "Step 6", 1 ) )
)}
),
Dispatch(
{},
"X title",
TextEditBox,
{Set Text( "Test_Step_Duration and Total" )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {11, [-1], 14, [0, 1, 2, 3, 4, 5]} ),
Position( {-1, 0, 1, 2, 3, 4, 5} )}
)
)
);
txtseg = gb << Xpath("//TextSeg");
txtseg << Set Font("Segoe UI", 10, "Bold");
txtseg[1] << {Transparency( 0 ), Text Color( "White" )}; //clear out the statistic

그래프 빌더에 사용자 정의 그래픽 스크립트를 추가하고 그래프를 마우스 오른쪽 버튼으로 클릭한 다음 사용자 정의를 선택하면 JSL이 추가된 것을 볼 수 있습니다.나는 상위 2개의 바에 대한 코드만 추가했지만 모든 코드를 진행하는 방법을 보여주어야 합니다.

첨부파일은 스크립트