Vollständige Karte mit partiellem Datensatz erzwingenHallo,
Ich hoffe, jemand kann hier mit einigen Anleitungen helfen. Als Teil einer größeren Berichterstellung generiere ich Wafer Heat Maps mit dem folgenden Skript:
Graph1 = dt << Graph Builder (
Größe (300, 300),
Systemsteuerung anzeigen (0),
Fußzeile anzeigen (0),
Y-Gruppenrand ("links"),
Variablen(
Gruppe X (: Col, Titel anzeigen (0)),
Gruppe X (: ChipCol, Titel anzeigen (0)),
Gruppe Y (: Zeile, Titel anzeigen (0)),
Gruppe Y (: ChipRow, Titel anzeigen (0)),
Farbe (: test_value)
)
Where ((: ReportLevel == Report_Level &: lot == this_lot &: Wafer == this_wafer)),
Von (: VarDescription),
Elemente (Heatmap (Legende (13))),
SendToReport (
Dispatch ({}, "Diagrammtitel", TextEditBox, {Set Text ("")}),
Dispatch ({}, "X title", TextEditBox, {Set Wrap (2)}),
Versand ({}, "Y title", TextEditBox, {Set Wrap (2)})
)
)
Ich habe bis zu 150 mögliche Werte für: VarDescription und habe festgestellt, dass das Ausführen in einer Schleife zum Erstellen jeder einzelnen Map, Anhängen des Journals und Schließen der Map sehr umständlich war. Ich fand, dass der Graph Builder mit der By (: VarDescription) -Anweisung alle Maps auf einmal erstellen konnte, viel fließender. Um mein Journal zu erstellen, kann ich die einzelnen Maps aus den Array-Positionen im Graph-Objekt herausholen. Was mich in der Klemme hat, ist, dass das Erhalten einer vollständigen Karte von Werten für ALLE Sites abhängt, ansonsten bekomme ich teilweise konsolidierte Karten. Selbst wenn ich nur einige Standorte getestet habe, möchte ich, dass die gesamte Karte aus räumlichen Gründen angezeigt wird. In meine Datentabelle füge ich eine Handvoll Referenzzeilen ein, die leere Werte für alle Positionen in der ersten Spalte und der ersten Zeile darstellen. Dadurch wird effektiv die Anzeige der vollständigen Karte im Diagramm-Generator erzwungen, wenn die "Dummy" -Zeilen enthalten sind. Ich stecke fest, wie diese Referenzzeilen für jede Karte eingefügt werden sollen, wenn Sie die By (: VarDescription) -Anweisung im Graphenersteller vs. eine filter (Where) -Anweisung verwenden. Ich glaube nicht, dass es eine Möglichkeit gibt, dies bei der ersten Erstellung der Karten zu tun. Gibt es eine Möglichkeit, Daten nachträglich an ein Diagrammobjekt anzuhängen? Oder die generierte Filterung ändern? Ich habe festgestellt, dass die einzelnen Karten im Journal mit modifizierten Filtern enden, die ich mit der By () - Anweisung generiert habe. Als alternative Lösung, die in diese Herangehensweise passt, habe ich mir überlegt, nur "Dummy" -Zeilen für alle zu erstellen: VarDescription-Möglichkeiten, aber die Datentabelle würde sehr groß und unübersichtlich werden. Ich versuche das zu vermeiden.
Vielen Dank!
Re: Erzwingen einer vollständigen Karte mit partiellem DatensatzJim - Danke! Dies ist ein ausgezeichneter Ansatz. Ich habe JMP im Handumdrehen gelernt, und ich denke, ein Teil des schleifenhaften Ansatzes für jede Handlung war so frühzeitig meine Unerfahrenheit, Diagramme und Tabellen unsichtbar für die Manipulation zu erzeugen und sie hinter den Kulissen zu schließen. Mir gefällt die Idee, eine Vorlage auf diese Weise zu erstellen und nur dort Daten einzufügen, wo sie vorhanden ist. Ich werde wahrscheinlich einen guten Teil meines Skripts überarbeiten müssen, da ich viele verschiedene Verarbeitungsschritte durchführe, aber auf lange Sicht wird dies zum Besseren sein. Danke noch einmal!
Cory
Re: Erzwingen einer vollständigen Karte mit partiellem DatensatzHier ist ein Skript, von dem ich glaube, dass es Ihnen das gibt, was Sie wollen. Es werden alle Wafermaps in einem Journalfenster generiert. Ich habe die Where () - Klausel aus Ihrem Graph Builder-Skript ausgelassen, weil mir die Werte nicht zur Verfügung standen, aber Sie sollten die Zeile ohne wirkliche Probleme hinzufügen können.
Names Default To Here( 1 );
dt = Current Data Table();
// Create the empty wafer map data set
dtWaferMap = dt << Summary(
private,
Group( :Col, :ChipCol, :Row, :ChipRow ),
Freq( "None" ),
Weight( "None" )
);
dtWaferMap << delete columns( "N Rows" );
// Get a list of all of the VarDescriptions
Current Data Table( dt );
Summarize( dt, byVarDes = by( :VarDescription ) );
// Create the output journal
NW = New Window( "Heat Maps", <<JOURNAL></JOURNAL>

Re: Erzwingen einer vollständigen Karte mit partiellem DatensatzIch hatte eigentlich schon mit Page () angefangen, aber das Problem ist, dass es nur funktioniert, wenn alle Karten Teilmengen des gleichen Parameters beschreiben, da es eine gemeinsame Legende / einen gemeinsamen Maßstab gibt. Ich brauche wirklich jede Karte, um einen anderen Parameter zu haben, und By () erstellt tatsächlich diskrete Diagramme.
Re: Erzwingen einer vollständigen Karte mit partiellem DatensatzIch habe einige Beispieldaten anhand Ihrer Datenstruktur erstellt und eine Kopie Ihrer Heatmap erstellt. Ich fügte dann einen zweiten VarDescription-Satz von Werten hinzu, wobei nur eine Teilmenge der Zellen enthalten war. Anstatt ein "BY" zu verwenden, warf ich die VarDescription auf den Seitenbereich ab und erhielt folgendes

Das Problem mit der Seite ist, dass sie nur 100 Seitenwerte zulässt. Dies kann jedoch leicht überwunden werden, wenn Sie Ihre Daten in ein 100-Seiten-Muster setzen.
Hier ist der von Graph Builder generierte Code
Graph Builder(
Size( 418, 646 ),
Show Control Panel( 0 ),
Show Footer( 0 ),
Y Group Edge( "Left" ),
Variables(
Page( :VarDescription ),
Group X( :Col, Show Title( 0 ) ),
Group X( :ChipCol, Show Title( 0 ) ),
Group Y( :Row, Show Title( 0 ) ),
Group Y( :ChipRow, Show Title( 0 ) ),
Color( :test_value )
),
Elements( Heatmap( Legend( 33 ) ) ),
SendToReport( Dispatch( {}, "graph title", TextEditBox, {Set Text( "" )} ) )
);
Re: Erzwingen einer vollständigen Karte mit partiellem DatensatzGerade als Nachbereitung habe ich mich ein wenig mit Formkarten beschäftigt. Es sieht so aus, als würde es auf irgendeine Weise funktionieren, aber ich sehe nicht, wie ich das Row / Col-, Subrow / Subcol-Format meiner Darstellungen leicht übernehmen kann, was für unsere Anwendung wichtig ist. Ich vermute, ich könnte es brutal erzwingen. Die Karten, die ich generiere, werden nicht einfach als räumliche Darstellung des Endprodukts auf x / y-Koordinaten verwendet. Sie dienen der Adressierung von Teilen und der schnellen Kommunikation mit anderen Personen. Der Umgang mit x / y würde lediglich eine weitere Übersetzungsebene hinzufügen, die für unsere Zwecke ein wenig klobig ist.
Re: Erzwingen einer vollständigen Karte mit partiellem Datensatz
Row und Col definieren im Wesentlichen das Kartenraster. ChipRow und ChipCol sind im Wesentlichen eine Unterzeile und eine Unterspalte.
Dies ist eine Beispielausgabe, die für jede eindeutige Variable generiert wird: VarDescription. So wird es angezeigt, wenn für alle Standorte Daten vorhanden sind.

Was ich versuche zu tun, ist, es zu zwingen, auch mit Teildaten vollständig zu wirken. Die Dummy-Reihen schaffen dies und ich bekomme das.

Ohne die Dummy-Zeilen würde es so aussehen ...

Ich habe keine Formkarte erforscht, aber mit ein wenig Vorarbeit könnte dies der bessere Weg sein. Ich kann ein bisschen mehr hineinschauen.
Re: Erzwingen einer vollständigen Karte mit partiellem DatensatzIch versuche, Ihr Problem zu replizieren.
Einige Fragen:
Könnten Sie einen Screenshot Ihrer Ergebnisse einfügen?
Was sind die Definitionen von Row und ChipRow und von Col und ChipCol?
Haben Sie mit einer Shape Map erkundet?