Erstellen Sie ein Skript für mehrere Spalten, die im Verteilungsdiagramm gruppiert sindIch versuche, ein Skript zu erstellen, mit dem mehrere Parameterspalten dargestellt werden können, die in einer Verteilung gruppiert sind (wie in der Abbildung dargestellt). Mein Problem ist, dass der Code für jede Parameterspalte eine separate Zeile „Kontinuierliche Verteilung“ benötigt. Meine Datenabrufe haben unterschiedliche Spaltennamen und die Anzahl der darzustellenden Spalten, je nachdem, was ich gerade mache. Ich kann nicht herausfinden, wie ich diese Spaltennamenliste nehmen und sie wie unten gezeigt in einer Gruppe darstellen kann, anstatt einzelne Diagramme für jeden Parameter zu durchlaufen und zu erstellen.
Distribution(
Continuous Distribution( Column( :Parameter1 ) ),
Continuous Distribution( Column( :Parameter2 ) ),
Continuous Distribution( Column( :Parameter3 ) )
);

Betreff: Mehrere Spalten im Verteilungsdiagramm gruppierenSo würde ich mit dem Problem umgehen
names default to here(1);
dt=open("$SAMPLE_DATA/semiconductor capability.jmp");
colList = dt << get column names(continuous,string);
// For this illustration I want to use just the NPNn columns
for(i=nitems(colList), i>=1,i--,
If(substr(colList[i],1,3)!="NPN", remove from(colList,i,1))
);
// build the JSL string
theExpr =
"Dis = Distribution(
Continuous Distribution( Column( :" || colList[1] || " ),
Process Capability( Use Column Property Specs ) )";
For( i = 2, i <= N Items( colList ), i++,
theExpr = theExpr || "," || "Continuous Distribution( Column( :" || colList[i] ||
" ), Process Capability( Use Column Property Specs ) )"
);
theExpr=theExpr||");";
// run the built JSL string
eval(parse(theexpr));
// Standardize the settings
disr = Dis << report;
disr[colList[1]]["Quantiles"]<<CLOSE all="" like="" this=""></CLOSE>Betreff: Mehrere Spalten im Verteilungsdiagramm gruppierenIch glaube, meine Annahme, dass alles mit einer Bewerbung beginnt, hat mir große Schmerzen bereitet.
Hoffentlich noch eine Frage: Wenn ich die Eigenschaften von festlegen möchte alle die Verteilungen in einem Bericht, wie ich es hier mit dieser einzelnen Variablen gemacht habe, „T05066DD ET_DELTA Verhältnis“ Gibt es dafür einen einfachen Befehl oder muss ich eine for-Schleife erstellen und „sendtoreport“ für jede Variable in meiner Liste ausführen?
ET_DELTA_List = {};<BR />dist = dt << Distribution(Columns(evalList(ET_DELTA_List)));
dist << arrange in rows(5);
dist << Quantiles(0);
dist << Summary Statistics(0);
report(dist)[OutlineBox(2)] << Open all like this(1);
//show properties(dist)
dist << SendToReport(
Dispatch(
{"T05066DD ET_DELTA Ratio"},//this is one of many distributions. i would like to set the following properties to all the distributions in the report
"1",
ScaleBox,
{Min( -5 ), Max( 5 ), Inc( 5000 ), Minor Ticks( 1 ),
Add Ref Line( 2, "Solid", "Black", "", 1 ),
Add Ref Line( -2, "Solid", "Black", "", 1 )}
)
)</CODE></P><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-277293" slang="en-US" mode="NONE">Betreff: Mehrere Spalten im Verteilungsdiagramm gruppieren</LINGO-SUB><LINGO-BODY id="lingo-body-277293" slang="en-US" mode="NONE"><P>Ich würde einfach den Aufwand vermeiden, es in eine Anwendung einzufügen.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-277279" slang="en-US" mode="NONE">Betreff: Mehrere Spalten im Verteilungsdiagramm gruppieren</LINGO-SUB><LINGO-BODY id="lingo-body-277279" slang="en-US" mode="NONE"><P>OK danke.</P><P>Was wäre Ihre Strategie dafür? Würden Sie die Verwendung des Application Builders mit Allocate usw. vermeiden und einfach ein Skript verwenden, um alles zu positionieren?</P><P>Danke noch einmal</P><P>Wayne.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-277090" slang="en-US" mode="NONE">Betreff: Mehrere Spalten im Verteilungsdiagramm gruppieren</LINGO-SUB><LINGO-BODY id="lingo-body-277090" slang="en-US" mode="NONE"><P>Die kurze Antwort lautet Nein.Sie müssen mindestens eine Zeichenfolge erstellen, die den gesamten JMP-App-Code enthält.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-277077" slang="en-US" mode="NONE">Betreff: Mehrere Spalten im Verteilungsdiagramm gruppieren</LINGO-SUB><LINGO-BODY id="lingo-body-277077" slang="en-US" mode="NONE"><P>Wenn ich das mit einem lokalen Datenfilter in eine Anwendung einfügen wollte, könnte ich dann die Allocate-Anweisung in Eval(Parse) einfügen?</P><P>So..</P><PRE><CODE class=" language-jsl">theExpr = "dis = Allocate(
Border1 = Border Box();
DataFilterContext1 = Data Filter Context Box();
List1 = H List Box();
DataFilter1 = Dt << Data Filter( Local );
Report1 = Platform(
Dt,
Distribution(
Continuous Distribution( column( column(Dt, colNames[1])))";
For( i = 2, i <= N Items( colNames ), i++,
theExpr = theExpr || ", Continuous Distribution( column( column(Dt, colNames[" || Char( i ) || "])))"
);
theExpr = theExpr || " )
);
)";
show(theexpr);
Eval( Parse( theExpr ) );
Betreff: Mehrere Spalten im Verteilungsdiagramm gruppierenSie müssen lediglich die Liste der Spaltennamen ändern, um die Anforderungen zu erfüllen.Es gibt viele Möglichkeiten, dies zu tun. Nachfolgend finden Sie ein Beispiel
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// Get the all of the numeric, continuous column names
colNames = dt << get column names( string, continuous );
// Work backwards through the list of columns eliminating those that
// do not meet the pattern one is interested in
For( i = N Items( colNames ), i >= 1, i--,
If( left( colNames[i], 3 ) != "NPN" , colNames = remove( colNames, i, 1 ) );
);
// Build a character string that represents the commands that need to be run
theExpr = "dis = dt << Distribution(
Continuous Distribution( column( column(dt, colNames[1])))";
// Loop across the remaining columns in the colNames list and generate the continuous distribution
// commands
For( i = 2, i <= N Items( colNames ), i++,
theExpr = theExpr || ", Continuous Distribution( column( column(dt, colNames[" || Char( i ) || "])))"
);
// place the closing ")" to complete the command string
theExpr = theExpr || ");";
// Execute the code generated and placed into the character string variable
Eval( Parse( theExpr ) );
Betreff: Mehrere Spalten im Verteilungsdiagramm gruppieren@txnelson Ich habe dieses Skript verwendet und es hat funktioniert. Ich versuche, meinen Bericht zu automatisieren, aber meine Datentabelle besteht aus mehr als 300 Spalten und die Anzahl der Spalten variiert pro Woche. Ich habe Spaltennamen, die mit ex beginnen. „Fail1“, „Fail2“,,, „Total1“, „Total2“,,, „Yield1“, „Yield2“,,, „Loss1“, „Loss2“,,.Wie filtere ich, um kontinuierliche Verteilungen anzuzeigen, zum Beispiel nur „Verlust1“, „Verlust2“?
Betreff: Mehrere Spalten im Verteilungsdiagramm gruppieren@RonSwanson ,
Jim @txnelson Das Skript bietet Ihnen viel mehr Kontrolle und eine Lösung. Dies ist eine alternative Option, da ich oft gefragt wurde, wie man problemlos eine unbekannte Anzahl von Distributionen per Skript erstellen kann.Dieses Skript enthält außerdem Befehle zum „Umschließen“ von Verteilungen und zum Senden von Nachrichten an alle Verteilungen durch Senden einer Nachricht an das Objekt (Capability Analysis-Nachricht) und zum Senden einer Nachricht an das Enthüllungssymbol.
Names default to Here(1);
dt = Open("$Sample_Data/Semiconductor Capability.jmp");
cnames = dt << get column names("Continuous", "string");
//Here I will just use 10
cnames = cnames[1::10];
dist = dt << Distribution(Columns(evalList(cnames)));
//if you want to limit the number per row
dist << arrange in rows(3); //change 3 to 5 or whatever you want
dist << Capability Analysis(0); //turn off the distribution
report(dist)[OutlineBox(2)] << Open all like this(1); //reveal all distributions
report(dist)[OutlineBox(2)] << Close all like this(1); //do not reveal

Betreff: Mehrere Spalten im Verteilungsdiagramm gruppierengenau das, was ich brauchte... Danke tx!!Betreff: Mehrere Spalten im Verteilungsdiagramm gruppierenHier ist eine Möglichkeit, den Code zu generieren, der erforderlich ist, um das zu produzieren, was Sie wollen
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
// Get the all of the numeric, continuous column names
colNames = dt << get column names( string, continuous );
// Build a character string that represents the commands that need to be run
theExpr = "dis = dt << Distribution(
Continuous Distribution( column( column(dt, colNames[1])))";
// Loop across the remaining columns in the colNames list and generate the continuous distribution
// commands
For( i = 2, i <= N Items( colNames ), i++,
theExpr = theExpr || ", Continuous Distribution( column( column(dt, colNames[" || Char( i ) || "])))"
);
// place the closing ")" to complete the command string
theExpr = theExpr || ");";
// Execute the code generated and placed into the character string variable
Eval( Parse( theExpr ) );