Gestapeltes Balkendiagramm von Graph BuilderIm Anhang zu JMP 17 finden Sie eine einfache Datentabelle mit den monatlichen Zahlen der Gesamtzahl der Teile, der Gesamtzahl der Fehler, dem Prozentsatz der Gesamtfehler und dann den einzelnen Zahlen, bei denen der Parameter fehlgeschlagen ist. Das gestapelte Balkendiagramm, das ich möchte, ist „Monat“ auf der X-Achse und „% Gesamtfehler“ auf der Y-Achse. Dann möchte ich, dass diese Balken mit dem Ausbruch, bei dem der Parameter fehlgeschlagen ist, um den monatlichen Prozentsatz jedes Parameters gestapelt werden. Unten sehen Sie einen Screenshot (siehe Abb. 1) von etwas, das ich in ppt erstellt habe. Ich konnte dies im Graph Builder nicht abrufen. Ich habe versucht, die Daten zu stapeln und Spalten zu manipulieren, aber es ging nicht.
Zusammenfassend möchte ich den Gesamtprozentsatz der fehlerhaften Teile auf der Y-Achse als Balken anzeigen, und dieser Balken zeigt dann den Prozentsatz jedes Parameters an, der für jeden Monat fehlgeschlagen ist. Eine Beispieldatentabelle ist unten beigefügt. Danke schön.
Abb. 1

Datenexploration und -visualisierungWindowsBetreff: Gestapeltes Balkendiagramm von Graph BuilderJim:
Danke für Ihre Antwort. Mir war die Option „Multiple Series Stack“ nicht bekannt, daher ist das ein toller Tipp. Das einzige Problem mit dem von Ihnen erstellten Diagramm war die Y-Achse. Ich suchte nach „Gesamtprozentsatz pro Monat“ als Gesamthöhe der Leiste. Für Januar wären es also 10 %, für Februar 4 % und für März 15 %. Die Y-Achse zeigt den monatlichen Gesamtprozentsatz der Ausfälle. Dann würde jeder dieser Balken in die Prozentsätze der fehlerhaften Parameter unterteilt. Der 10 %-Gesamtbalken für Januar würde in 20 % Parm 1 / 80 % Parm 2 unterteilt. Der Gesamtbalken vom 4. Februar würde in 16,7 % Parm 1 / 50 % Parm 2 / 33,3 % Parm 3 unterteilt. Dann wäre der Gesamtbalken von 15 % vom März in 37 % Parm 1 / 29,6 % Parm 2 / 33,3 % Parm 3 unterteilt. Möglicherweise muss ich die Tabelle noch weiter anpassen, da ich dies noch nicht über Graph Builder umsetzen kann. Danke noch einmal.
Betreff: Gestapeltes Balkendiagramm von Graph BuilderDas gewünschte Diagramm erfordert eine Änderung der Struktur Ihrer Datentabelle und die Einstellung einiger Zeilenzustände und Spaltenzustände der Datentabelle.

Das folgende Skript ändert die Struktur der Datentabelle und zeichnet dann das obige endgültige Diagramm.Alles im Skript kann interaktiv erledigt werden.Tatsächlich wurde alles interaktiv erledigt und dann habe ich einfach das von JMP bereitgestellte Skript genommen und in ein endgültiges Skript kopiert.
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 )
)
)}
)
)
);
Hier ist die umstrukturierte Datentabelle, die zum Erstellen des endgültigen Diagramms verwendet wurde.

Betreff: Gestapeltes Balkendiagramm von Graph BuilderJim:
Mit Graph Builder habe ich endlich etwas zum Laufen gebracht. Vielen Dank für die von Ihnen bereitgestellte Lösung. Die Multiple Series, auf die Sie hingewiesen haben, ist eine große Hilfe für die Zukunft, ebenso wie der Code für diese Übung. Danke nochmal.
Betreff: Gestapeltes Balkendiagramm von Graph BuilderDer Wechsel zu % der Gesamtsumme ist eine einfache mathematische Formel, die die Spalten in der gestapelten Datentabelle angibt.Ich habe gerade eine neue Spalte namens % of Total hinzugefügt und sie dann im Diagramm als Y-Achse verwendet

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 )
)
)}
)
)
);