Hallo,
Ich versuche, mit dem Diagrammersteller ein gestapeltes Balkendiagramm mit Beschriftungen für jeden gestapelten Balken sowie einer Gesamtsumme zu erstellen.Das Bild unten ist eine markierte Version des Diagramms, das ich erreichen möchte, wobei ich die Summen für jeden Balken manuell eingegeben habe.(Der JMP-Beispieldatensatz, den ich zusammen mit dem eingebetteten Graph Builder-Skript verwendet habe, ist beigefügt.)
Weiß jemand, ob es eine Möglichkeit gibt, diese Ansicht über den Graph Builder/eine andere Plattform oder JSL-Skripting zu erstellen?
Danke,
AW

@txnelson , @gzmorgan0
Vielen Dank für die schnellen Antworten und kreativen Lösungsansätze für dieses Problem!Ich habe vergessen zu erwähnen, dass ich diese Diagramme für etwa 100 verschiedene Projekte pro Woche durchgehen und generieren muss.Daher denke ich, dass das von gzmorgan0 bereitgestellte Skript besser zu mir passt. Ich habe es gerade ausprobiert und es funktioniert perfekt für meine Bedürfnisse.Danke noch einmal!
@AW ,
@txnelson eine gute Lösung geliefert. Es erfordert ein wenig Skripting für die Beschriftungen.Hier ist eine weitere Methode, die GraphBuilder verwendet.Ich denke, dass es anhand des gespeicherten Skripts (unten) einfacher ist, das Muster zu erkennen. Dies kann über die Benutzeroberfläche und durch Deaktivieren der Overlay-Variable erfolgen. Das Diagramm besteht aus 3 Elementen:
- eine gestapelte Leiste mithilfe der Overlay-Variablen
- ein Balken, der die Overlay-Variable nicht verwendet
- eine Überschrift mit „Summary Statistic Sum“, bei der die Overlay-Variable nicht verwendet wird
Hinweis: Ich habe Ihre Datentabelle auf meinem Laufwerk c:/temp/ gespeichert. Das Caption-Elemnet bietet nicht die Flexibilität bei der Platzierung, die Jims Lösung bietet.
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

Sie können dem Graph Builder Ihre eigenen benutzerdefinierten Grafikskripte hinzufügen. Klicken Sie dazu mit der rechten Maustaste auf das Diagramm und wählen Sie „Benutzerdefiniert“. Daraufhin wird die hinzugefügte JSL angezeigt.Ich habe nur den Code für die oberen beiden Balken hinzugefügt, aber er sollte Ihnen zeigen, wie Sie mit allen fortfahren.

Im Anhang ist das Skript