Anzeigen eines Diagramms beim Ausführen eines SkriptsHallo. Ich habe ein Skript für meine Tabelle erstellt und hoffe, dass es mein Skript ausführt und einige Diagramme anzeigt, wenn ich mit der rechten Maustaste auf „Skript ausführen“ klicke. Wenn ich jedoch meinen Hauptcode ausführe, werden die Diagramme automatisch angezeigt und wenn ich anschließend mit der rechten Maustaste auf „Skript ausführen“ klicke, geschieht nichts. Ich bräuchte Ihre Hilfe, um auf den Fehler in meinem Code hinzuweisen. Danke.
Unten finden Sie einen Abschnitt des Langcodes.
aGraph = Graph Builder(
Size( xSize, ySize ),
Show Control Panel( 0 ),
Variables( X( :V ), Y( :I ), Overlay( :PID ) ),
Elements( Points( X, Y, Legend( 4 ), Jitter( 1 ) ), Line( X, Y, Legend( 6 ), Row order( 0 ), Summary Statistic( "Mean" ) ) ),
SendToReport(
Dispatch( {}, "ID", ScaleBox, {Scale( "Log" ), Format( "Best", 12 ), Inc( 1 ), Minor Ticks( 1 )} ),
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 1 ), Line Width Scale( 0.1 )} )
)
);
bGraph = Graph Builder(
Size( xSize, ySize ),
Show Control Panel( 0 ),
Variables( X( :V ), Y( :I ), Overlay( :PID ) ),
Elements( Points( X, Y, Legend( 3 ), Jitter( 1 ) ), Line( X, Y, Legend( 5 ), Row order( 0 ), Summary Statistic( "Mean" ) ) ),
SendToReport(
Dispatch( {}, "IG", ScaleBox, {Scale( "Linear" ), Format( "Best", 12 ), Inc( 1 ), Minor Ticks( 1 )} ),
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 1 ), Line Width Scale( 0.1 )} )
)
);
// Create new script
dt << New Script(
"Plot Graph",
graphWindow = New Window( "Graphs",
Panel Box( "Graphs",
V List Box(
H List Box(
If( !Is Empty( aColumns ),
aGraph
),
If( !Is Empty( bColumns ),
bGraph
)
)
)
)
)
);Betreff: Anzeigen eines Diagramms beim Ausführen eines SkriptsDas Problem betrifft den Namespace.Ihr in die Datentabelle eingebettetes Skript speichert und ruft die Speichervariablen an einem anderen Speicherort (Namespace) ab als das Skript, das in Ihrem Skriptfenster ausgeführt wird.Sie können jedoch einen globalen Namespace erstellen, den beide Skripte verwenden können.
Wenn Sie also in Ihrem eingebetteten Skript den Code zum Festlegen der Größe haben, der auf den globalen Speicherbereich verweist ... Nehmen wir an, wir nennen diesen Raum „gspace“, wäre der Code in Ihrem eingebetteten Skript so
size(gspace:xSize,gspace:ySize),
und Sie würden in Ihrem geöffneten Skriptfenster laufen
gspace = new namespace("GSpace");
gspace:xSize = 800;
gspace:ySize = 600;
Wenn Sie dann den eingebetteten Code ausführen, werden die gSpace-Variablen gefunden
Betreff: Anzeigen eines Diagramms beim Ausführen eines Skripts@txnelson ,
Danke, es hat funktioniert. Ich habe jedoch eine Folgefrage: Die Variablen in meinem Skript: xSize, ySize, aColumns und bColumns enthalten Werte außerhalb des neuen Skripts. Wenn das neue Skript ausgeführt wird, werden die Werte jedoch nicht innerhalb des Ausdrucks übergeben. Ich tue mich immer schwer mit Eval und Expr. Können Sie mir auch helfen, wie ich das Problem beheben kann?
Betreff: Anzeigen eines Diagramms beim Ausführen eines SkriptsDer Agraph- und Bgraph-Code muss Teil des Skripts sein.Unten finden Sie eine Version, die ein Skript generiert, das ausführt, was Sie benötigen.
Names Default To Here( 1 );
dt = Current Data Table();
// Create new script
dt << New Script(
"Plot Graph",
aGraph = Expr(
Graph Builder(
Size( xSize, ySize ),
Show Control Panel( 0 ),
Variables( X( :V ), Y( :I ), Overlay( :PID ) ),
Elements(
Points( X, Y, Legend( 4 ), Jitter( 1 ) ),
Line( X, Y, Legend( 6 ), Row order( 0 ), Summary Statistic( "Mean" ) )
),
SendToReport(
Dispatch(
{},
"ID",
ScaleBox,
{Scale( "Log" ), Format( "Best", 12 ), Inc( 1 ), Minor Ticks( 1 )}
),
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 1 ), Line Width Scale( 0.1 )} )
)
)
);
bGraph = Expr(
Graph Builder(
Size( xSize, ySize ),
Show Control Panel( 0 ),
Variables( X( :V ), Y( :I ), Overlay( :PID ) ),
Elements(
Points( X, Y, Legend( 3 ), Jitter( 1 ) ),
Line( X, Y, Legend( 5 ), Row order( 0 ), Summary Statistic( "Mean" ) )
),
SendToReport(
Dispatch(
{},
"IG",
ScaleBox,
{Scale( "Linear" ), Format( "Best", 12 ), Inc( 1 ), Minor Ticks( 1 )}
),
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 1 ), Line Width Scale( 0.1 )} )
)
)
);
graphWindow = New Window( "Graphs",
Panel Box( "Graphs",
V List Box(
H List Box(
If( !Is Empty( aColumns ),
aGraph
),
If( !Is Empty( bColumns ),
bGraph
)
)
)
)
);
);