Verwendung einer Variablen als Spaltennamen beim Erstellen eines Diagramms
The script below loads some data and should create twice the same plot.<BR />The first one by referring to the column name by using a variable (test1), the second one by calling the column name directly.
The second one works fine, but for the first one I get an empty plot area. I guess there is a problem with how I define or call test1. I have tried different approaches, but so far nothing worked.
Names Default To Here( 1 );
// Import the Excel file with specified settings
dt = Open(
"/Y:/.../file.xlsx",
Worksheets( "Pivot table for JMP" ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Headers Start on Row( 2 ),
Data Starts on Row( 3 )
)
);
// Filter rows to include only "AAA" in "Common Designation"
dt_AAA = dt << Subset(
Rows( :Common Designation == "AAA" ),
Include All Columns,
Name( "Filtered AAA" )
);
size = "AAA" ;
Match( size,
"AAA", test1 = column ("PL (min)"),
);
New Window( size,
V List Box(
Graph Builder(
Size( 500, 297 ),
Show Control Panel( 0 ),
Variables( X( :test1 ), Y( :Chemistry ), Color( :Chemistry ) ),
Elements( Points( X, Y, Legend( 106 ) ) )
),
Graph Builder(
Size( 500, 297 ),
Show Control Panel( 0 ),
Variables( X( :"PL (min)"n ), Y( :Chemistry ), Color( :Chemistry ) ),
Elements( Points( X, Y, Legend( 106 ) ) )
),
),
);
Automatisierung und SkripterstellungBetreff: Verwendung einer Variablen als Spaltennamen beim Erstellen eines DiagrammsWenn ich es richtig verstehe, müssen Sie lediglich den Doppelpunkt vor „test1“ im ersten Graph Builder-Skript entfernen. Hier ist ein funktionierendes Beispielskript:
Names Default To Here (1);
dt = open ("$SAMPLE_DATA/big class.jmp");
test1 = column ("weight");
Graph Builder (
Variables (X(test1), Y(:height), color (:sex))
);
Betreff: Verwendung einer Variablen als Spaltennamen beim Erstellen eines DiagrammsEin cooler Trick, um solche Fehler zu finden:
Entferne immer mehr Zeilen aus dem fehlerhaften Skript, bis nur noch genügend Zeilen übrig sind, um den Fehler zu erzeugen.
Wichtig: Der Code sollte alle Elemente enthalten, die den Fehler erzeugen – und zwar für jeden, der den Code ausführt *).
Dies hat zwei Vorteile:
In den meisten Fällen findet man den Fehler automatisch. Eine Zeile entfernt, und der Fehler ist behoben.
- Der verbleibende Code ist sehr kurz, was die Fehlersuche erheblich erleichtert.
*) Auf meinem System ist es mit folgender Fehlermeldung abgestürzt:

Viel besser: Verwenden Sie eine der Beispieldateien, wie im Beispiel von @Jed_Campbell .
Dies hat noch einen weiteren Vorteil: Man kann unterscheiden zwischen:
- Es gibt einen Fehler in meiner Datentabelle (der Fehler tritt bei den Beispieldaten nicht mehr auf).
- Es gibt einen Fehler in meinem Skript (da ich den Fehler mit den Beispieldaten reproduzieren kann)