Knifflige Frage zum Graph BuilderHallo JMPer,
Ich versuche, einen großen Kunden davon zu überzeugen, JMP zu verwenden.Jetzt fällt es mir schwer, eine ihrer Anwendungen in JMP zu reproduzieren.
Das erste Problem, mit dem ich konfrontiert bin, ist, dass wir die Farben der Zeilenzustände beibehalten möchten, während wir die Overlay-Option verwenden.
Wir benötigen die obige Grafik (einschließlich der blauen und roten Punkte) mit Verbindungslinien zwischen den beiden Punkten jedes Teils (Y-Achse).
Ich kann die Verbindungslinie über das Overlay erhalten, muss dann aber die Farben manuell anpassen.
Gleichzeitig müssen wir dem Diagramm mehrere obere und untere Spezifikationsgrenzen hinzufügen.
Am Ende möchten wir etwa die folgende Grafik haben:
Ich konnte das Diagramm mit mehreren manuellen Schritten erstellen (z. B. Rahmeninhalt kopieren und einfügen), aber das Ziel wäre, dieses Diagramm nur mit den Standardtools zum Erstellen von Diagrammen zu erstellen – insbesondere, um die Interaktivität beizubehalten.
Über jeden Rat würde ich mich sehr freuen.
Danke,
Sebastian
Dies wäre die gegebene Datenstruktur:
New Table( "Sample",
Add Rows( 20 ),
New Column( "Part ID",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] )
),
New Column( "X1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] )
),
New Column( "X2",
Character,
"Nominal",
Set Values(
{"cold", "cold", "cold", "cold", "cold", "cold", "cold", "cold", "cold",
"cold", "medium", "medium", "medium", "medium", "medium", "medium",
"medium", "medium", "medium", "medium"}
)
),
New Column( "Y",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If(
:X2 == "cold", Random Normal() + 10,
:X2 == "medium", Random Normal() + 12,
Random Normal()
)
)
),
New Column( "Y_USL",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16]
)
),
New Column( "Y_LSL",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6] )
),
Set Row States(
[768, 768, 1280, 1280, 1280, 1280, 1280, 1280, 768, 768, 768, 768, 1280,
1280, 1280, 1280, 1280, 1280, 768, 768]
)
)
Übrigens: Ihr Link zum „JSL Syntax Highligher“ scheint defekt zu sein. Zumindest lande ich auf einer leeren Seite.
Betreff: Knifflige Frage zum Graph BuilderSie können Ihr gewünschtes Ergebnis fast ohne JSL-Skripting erzielen. Erstellen Sie zunächst ein Balkendiagramm mit Bereichsfehlerbalken. Setzen Sie dann die Transparenz der Balken auf Null, damit sie verschwinden. Fügen Sie nun eine Reihe von Punkten hinzu, indem Sie bei gedrückter Umschalttaste klicken. Speichern Sie diese JSL im Skriptfenster.
Der einzige Teil des Skripts besteht in der Verwendung von Col Maximum()/ Col Minimum() Funktionen zum Zeichnen auf den Referenzlinien.

Graph Builder(
Size( 663, 468 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Y ), Y( :Part ID ) ),
Elements(
Bar( X, Y, Legend( 16 ), Error Bars( "Range" ) ),
Points( X, Y, Legend( 14 ), Jitter( 0 ) )
),
SendToReport(
Dispatch(
{},
"Y",
ScaleBox,
{Format( "Best", 12 ), Min( 5.64697504725641 ), Max( 16.37329465957 ),
Inc( 2 ), Minor Ticks( 1 ),
Add Ref Line( Col Minimum(:Y_LSL), "Dashed", "Red", "", 2 ),
Add Ref Line( Col Maximum(:Y_USL), "Dashed", "Red", "", 2 ),
Add Ref Line( Col Maximum(:Y_LSL), "Solid", "Blue", "", 2 ),
Add Ref Line( Col Minimum(:Y_USL), "Solid", "Blue", "", 2 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
16,
Properties( 0, {Fill Color( 2 ), Transparency( 0 )} )
)}
),
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 4 )} )
)
);Betreff: Knifflige Frage zum Graph BuilderHier ist ein Skript, das das gewünschte Ausgabediagramm erstellt. Ich habe wie Sie eine Beispieldatentabelle hinzugefügt, jedoch mit einer Ergänzung. Der Trick, um Graph Builder dazu zu bringen, dieselben Farben wie die Zeilenstatusfarbe zu verwenden, besteht tatsächlich darin, die Wertfarben für Part_ID auf die gewünschten Farben festzulegen. Dann verwendet Graph Builder diese Farben für die Überlagerung. Dem Graph Builder-Code wurden außerdem Achsenreferenzlinien hinzugefügt. Nun handelt es sich bei dem Code, den ich bereitstelle, um statischen Code, aber JSL könnte den von Ihnen benötigten Plattformcode problemlos generieren, indem es die Datentabelle liest, die benötigten Referenzzeilen ermittelt und dann einfach den Graph Builder-Code nach Bedarf ändert. Schließlich habe ich die tatsächlichen Linienfarben manuell geändert und dann das gesamte Graph Builder-Skript gespeichert. Aufgrund Ihrer Frage ging ich davon aus, dass Sie sehen wollten, wie Sie die gewünschten Ergebnisse erzielen. Daher meine Antwort. Das Erstellen des Diagramms aus generischen Datentabellen ist in meiner Antwort nicht enthalten, kann aber durchaus per Skript erfolgen.
Names Default to Here( 1 );
New Table( "Sample",
Add Rows( 20 ),
New Column( "Part ID",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Property( "Value Colors", {1 = 3, 2 = 3, 3 = 5, 4 = 5, 5 = 5, 6 = 5, 7 = 5, 8 = 5, 9 = 3, 10 = 3} ),
Set Values( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] )
),
New Column( "X1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] )
),
New Column( "X2",
Character,
"Nominal",
Set Values(
{"cold", "cold", "cold", "cold", "cold", "cold", "cold", "cold", "cold", "cold", "medium", "medium", "medium",
"medium", "medium", "medium", "medium", "medium", "medium", "medium"}
)
),
New Column( "Y",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( If( :X2 == "cold", Random Normal() + 10, :X2 == "medium", Random Normal() + 12, Random Normal() ) )
),
New Column( "Y_USL",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16] )
),
New Column( "Y_LSL",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6] )
),
Set Row States(
[768, 768, 1280, 1280, 1280, 1280, 1280, 1280, 768, 768, 768, 768, 1280, 1280, 1280, 1280, 1280, 1280, 768, 768]
)
);
Graph Builder(
Size( 509, 443 ),
Show Control Panel( 0 ),
Variables( X( :Y ), Y( :Part ID ), Overlay( :Part ID ) ),
Elements( Line( X, Y, Legend( 4 ), Row order( 1 ) ), Points( X, Y, Legend( 6 ), Jitter( 0 ) ) ),
SendToReport(
Dispatch(
{},
"Y",
ScaleBox,
{Min( 5.43667408790577 ), Max( 16.635593220339 ), Inc( 2 ), Minor Ticks( 0 ),
Add Ref Line( 16, "Dashed", "Red", "", 2 ), Add Ref Line( 15, "Solid", "Medium Dark Blue", "", 2 ),
Add Ref Line( 7, "Solid", "Medium Dark Blue", "", 2 ), Add Ref Line( 6, "Dashed", "Medium Dark Red", "", 2 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
4,
Properties( 0, {Line Color( 0 )} ),
Properties( 1, {Line Color( 0 )} ),
Properties( 2, {Line Color( 0 )} ),
Properties( 3, {Line Color( 0 )} ),
Properties( 4, {Line Color( 0 )} ),
Properties( 5, {Line Color( 0 )} ),
Properties( 6, {Line Color( 0 )} ),
Properties( 7, {Line Color( 0 )} ),
Properties( 8, {Line Color( 0 )} ),
Properties( 9, {Line Color( 0 )} )
), Legend Model(
6,
Properties( 0, {Marker( "FilledCircle" )} ),
Properties( 1, {Marker( "FilledCircle" )} ),
Properties( 2, {Marker( "FilledCircle" )} ),
Properties( 3, {Marker( "FilledCircle" )} ),
Properties( 4, {Marker( "FilledCircle" )} ),
Properties( 5, {Marker( "FilledCircle" )} ),
Properties( 6, {Marker( "FilledCircle" )} ),
Properties( 7, {Marker( "FilledCircle" )} ),
Properties( 8, {Marker( "FilledCircle" )} ),
Properties( 9, {Marker( "FilledCircle" )} )
)}
)
)
);

Betreff: Knifflige Frage zum Graph BuilderHallo,
Wenn Sie mit der rechten Maustaste auf die x-Achse klicken, können Sie Referenzlinien hinzufügen, die die Grenzen darstellen.
Wird es funktionieren?
Chris