JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtHallo,
In meinem JSL-Code verwende ich
dtt<
Und ich sehe in der Tabelle, dass neben „Skew“ ein Beschriftungssymbol hinzugefügt wird. Anschließend verwende ich den Graph Builder und innerhalb dieser Routine habe ich Folgendes:
Beschriftungen anzeigen(1),
Beim Generieren der Diagramme werden jedoch keine Beschriftungen angezeigt. Können Sie mir bitte dabei helfen? Muss ich noch etwas hinzufügen?
Vielen Dank
Automatisierung und SkripterstellungBetreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtNormalerweise aktivieren Sie die Beschriftungen im Abschnitt „Beschriftung“ auf der linken Seite (dies kann je nach Diagrammtyp unterschiedlich sein).

Sobald Sie mit Ihrem Diagrammgenerator zufrieden sind, kopieren Sie das Skript.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Cities.jmp");
dt << Set Label Columns(:City, :State);
gb = dt << Graph Builder(
Size(528, 454),
Show Control Panel(0),
Variables(X(:Longitude), Y(:Latitude)),
Elements(Points(X, Y, Legend(3), Label("Label by Row")))
);
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtSie müssen die Bezeichnungen in der Systemsteuerung aktivieren:

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
:name<< Label( 1 ); // no effect, label is already activated by default for this column
Graph Builder(
Size( 451, 447 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Label( "Label by Row" ) ), Smoother( X, Y ) )
);

Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigt-
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtVielen Dank für die Tipps, aber es funktioniert leider immer noch nicht. Ich habe die entsprechenden Zeilen in meinem JSL-Code fett markiert.
dtt<
Summarize(dtt, byGroup0 = by (:layout));
Zusammenfassen( dtt, byGroup1 = by( :Label ));
Summarize( dtt, byGroup2 = by( :Vt_flavor));
Zusammenfassen( dtt, byGroup3 = by( :Z_width));
Für (nn = 1, nn <= N Elemente (nach Gruppe 0), nn++,
Für ( ii = 1, ii <= N Items( byGroup1 ), ii++,
Für ( jj = 1, jj <= N Items( byGroup2 ), jj++,
Für (kk = 1, kk <= N Items( byGroup3 ), kk++,
dtt << select where(:Label == byGroup1[ii] & :Vt_flavor == byGroup2[jj] & :Z_width == byGroup3[kk] & :layout ==byGroup0[nn] );
//show(ii,jj,kk,bygroup1[ii],bygroup2[jj],bygroup3[kk]);
sel = dtt << ausgewählte Zeilen abrufen;
Wenn( n Zeilen(sel) > 0,
//show("inside",ii,jj,kk);
dt = dtt << subset( selected rows(1), selected columns(0));
gb = dt << Graph Builder(
Größe( 266, 228 ),
Systemsteuerung anzeigen (0),
Variablen( X( :nmos ), Y( :pmos ), Overlay( :PDK ) ),
Elemente( Punkte( X, Y, Legende( 5 ), Beschriftung("Beschriftung nach Zeile") ) ),
Beschriftungen anzeigen(1),
SendToReport(
Versenden(
{},
"nmos",
ScaleBox,
{Beschriftung Zeile(
{Hauptraster anzeigen( 1 ), Nebenbezeichnungen anzeigen( 1 ), Nebenraster anzeigen( 1 )}
)}
),
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtKönnten Sie bitte einen Code generieren – so kurz wie möglich?
Beginnend mit dem Laden einer Datentabelle, z. B.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
und poste es über:

Schnelle und hilfreiche Antworten auf Ihre Fragen
Schnelle und korrekte Antworten auf die richtigen Fragen
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtEntschuldigen Sie bitte meine vielleicht etwas naiven Fragen. Ich verstehe nicht ganz, was Sie mit „Label aktivieren“ meinen. Ich führe lediglich JSL auf meiner Datenbank aus und klicke nicht auf eine grafische Benutzeroberfläche, um etwas zu aktivieren. Ich dachte, es würde funktionieren, wenn ich die Spalte „skew“ als Label festlege und dann, wie Sie vorgeschlagen haben, „Label pro Zeile“ hinzufüge? Könnten Sie bitte den Aktivierungsteil im JSL-Skript genauer erklären (ohne auf eine grafische Benutzeroberfläche zu klicken)? Vielen Dank.
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtDa ich Hunderte von Diagrammen generiere, ist die Aktivierung per Klick für meinen Zweck nicht praktikabel. Danke.
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtBitte teilen Sie uns Ihren Code mit, damit wir ihn überprüfen können...
Die clevere/bequeme Art, JMP zu nutzen:
Verwenden Sie die grafische Benutzeroberfläche und lassen Sie JMP den Code generieren.
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtAnbei finden Sie den JSL-Code und die zugehörige Datentabelle. Die Diagrammgröße wird immer mit `Size(1401, 909)` angegeben, obwohl mein Code `Size(266, 228)` definiert. Ich wäre Ihnen dankbar, wenn Sie sich das ebenfalls ansehen könnten. Vielen Dank für Ihre Zeit und Hilfe.
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtDie Verwendung einer grafischen Benutzeroberfläche zur Skripterstellung bedeutet, dass Sie das Skript nur einmal erstellen, es kopieren und das von JMP generierte JSL-Skript anschließend verwenden können. Wenn JMP diese Skripte korrekt erstellen kann (z. B. für laufende Plattformen), ist es der beste verfügbare JSL-Skripter.
Zu Ihrem Problem: Beheben Sie zunächst die Probleme für ein einzelnes Diagramm (entfernen Sie also die Schleifen und verwenden Sie eine Teilmenge). Sobald dies wie gewünscht funktioniert, fügen Sie die Schleifen wieder hinzu, da dies das Debuggen deutlich vereinfacht. Wenn ich Ihren Plot für ein einzelnes Diagramm ausführe, erhalte ich folgendes Ergebnis:

Ich vermute, Ihre Probleme liegen im Grafikskript. Ich bin mir nicht ganz sicher, was Sie darin genau erreichen wollen.
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtHast du den Code unverändert verwendet oder etwas daran geändert?
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtNames Default To Here(1);
dtt = Open("$DOWNLOADS/output_sorted_test.jmp");
dtt << Set Label Columns(:skew);
Summarize(dtt, byGroup0 = by(:layout));
Summarize(dtt, byGroup1 = by(:Label));
Summarize(dtt, byGroup2 = by(:Vt_flavor));
Summarize(dtt, byGroup3 = by(:Z_width));
nn = 1;
ii = 1;
jj = 1;
kk = 1;
dtt << select where(:Label == byGroup1[ii] & :Vt_flavor == byGroup2[jj] & :Z_width == byGroup3[kk] & :layout == byGroup0[nn]);
sel = dtt << get selected rows;
If(N Rows(sel) > 0,
dt = dtt << subset(selected rows(1), selected columns(0));
gb = dt << Graph Builder(
Size(266, 228),
Show Control Panel(0),
Variables(X(:nmos), Y(:pmos), Overlay(:PDK)),
Elements(Points(X, Y, legend(5), Label("Label by Row"))),
Show labels(1),
SendToReport(
Dispatch({}, "nmos", ScaleBox, {Label Row({Show Major Grid(1), Show Minor Labels(1), Show Minor Grid(1)})}),
Dispatch({}, "pmos", ScaleBox, {Label Row({Show Major Grid(1), Show Minor Labels(1), Show Minor Grid(1)})}),
Dispatch({}, "Graph Builder", FrameBox,
{Marker Size(6), Add Graphics Script(
6,
Description(""),
Summarize(dt, byGroup = by(:PDK));
colorList = {"Blue", "red", "Green", "Green"};
Fill Pattern([0]);
For(i = 1, i <= N Items(byGroup), i++,
Pen Color(colorList[i]);
theRows = dt << get rows where(
:PDK == byGroup[i] & :skew != "tttt" & :skew != "ff" & :skew != "fs" & :skew != "sf" & :skew != "ss"
);
If(Word(2, byGroup[i], "/") == "a",
Line Style("Dashed"),
);
theRows = theRows |/ theRows[1];
xMatrix = :nmos[theRows];
yMatrix = :pmos[theRows];
Line(xMatrix, yMatrix);
);
), Add Text Annotation(
Text(byGroup1[ii] || "_" || "Z" || byGroup3[kk] || "_" || bygroup2[jj] || "_" || bygroup0[nn]),
Background Color("White"),
Filled(0),
Font("Segoe UI", 14, "Plain")
)}
)
)
);
);
Write();
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtDas ist sehr seltsam. Ich habe es mit einem Diagramm versucht. Aus irgendeinem Grund wird die Beschriftung nicht angezeigt. Ich habe auch Ihren Code kopiert und ausgeführt – auch hier wird die Beschriftung nicht angezeigt. Unten sehen Sie das Ergebnis eines einzelnen Diagramms. Wie Sie sehen, wird die Zeilenbeschriftung (wie erwartet) nicht angezeigt. Ich habe die Beschriftung wieder hinzugefügt und das Skript erneut ausgeführt, aber es bleibt dasselbe – keine Beschriftung.
Graph Builder(
Size( 1430, 909 ),
Show Control Panel( 0 ),
Variables( X( :nmos ), Y( :pmos ), Overlay( :PDK ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch( {}, "nmos", ScaleBox,
{Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 ), Show Minor Labels( 1 )} )}
),
Dispatch( {}, "pmos", ScaleBox,
{Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 ), Show Minor Labels( 1 )} )}
),
Dispatch( {}, "Graph Builder", FrameBox,
{Marker Size( 6 ), Marker Drawing Mode( "Normal" ),
Add Graphics Script(
5,
Description( "" ),
Summarize( dt, byGroup = by( :PDK ) );
colorList = {"Blue", "red", "Green", "Green"};
Fill Pattern( [0] );
For( i = 1, i <= N Items( byGroup ), i++,
Pen Color( colorList[i] );
theRows = dt << get rows where(
:PDK == byGroup[i] & :skew != "tttt" & :skew != "ff" & :skew != "fs" & :skew != "sf" &
:skew != "ss"
);
If( Word( 2, byGroup[i], "/" ) == "a",
Line Style( "Dashed" )
);
theRows = theRows |/ theRows[1];
xMatrix = :nmos[theRows];
yMatrix = :pmos[theRows];
Line( xMatrix, yMatrix );
);
), Add Text Annotation(
Text( "cgate_per_um_Z120_dev1_s9999019999d9999019999" ),
Fixed Size( 0 ),
Text Box( {87, 62, 341, 134} ),
Background Color( "White" ),
Font( "Segoe UI", 14, "Plain" ),
Filled( 0 )
)}
)
)
)
Hinweis: JSL wurde in ein JSL-Objekt kopiert, um die Lesbarkeit durch TXNELSON zu verbessern.
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtDas von Ihnen eingefügte Skript ist nicht dasselbe wie mein Skript, da ich
Elements(Points(X, Y, legend(5), Label("Label by Row"))),
Show labels(1),
was Sie nicht
Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtIch habe das versucht (siehe Codeausschnitt unten). Die Beschriftung wird aber immer noch nicht im Diagramm angezeigt. Ich habe keine Ahnung, woran es liegt. Danke.

Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtEhrlich gesagt, ich habe auch keine Ahnung, woran es liegt. Wenn ich das von mir bereitgestellte Skript ausführe (mit einer leichten Fenstergrößenänderung), erhalte ich folgende Fehlermeldung mit JMP18.

Und das mit JMP19

Betreff: JSL-Codierungs-Debugging – Hilfe bei „Label“ benötigtIch werde die JMP-Version aktualisieren und sehen, ob das hilft. Vielen Dank.