运行脚本时显示图形你好。 我为我的表创建了一个脚本,我希望当我右键单击“运行脚本”时,它会执行我的脚本并显示一些图表。 然而,当我运行我的主要代码时,图表会自动显示,当我右键单击“运行脚本”之后它什么也不做。 我需要您的帮助来指出我的代码中的错误。 谢谢。
下面是长代码的一部分。
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
)
)
)
)
)
);回复:运行脚本时显示图形问题是命名空间之一。嵌入数据表中的脚本在与从脚本窗口运行的脚本不同的内存位置(命名空间)中存储和获取内存变量。但是,您可以创建两个脚本都可以使用的全局命名空间。
因此,如果您的嵌入式脚本中有代码用于设置指向全局内存空间的大小......假设我们称该空间为“gspace”,那么嵌入式脚本中的代码将是
size(gspace:xSize,gspace:ySize),
你会在你打开的脚本窗口中运行
gspace = new namespace("GSpace");
gspace:xSize = 800;
gspace:ySize = 600;
然后,当您运行嵌入式代码时,它会找到 gSpace 变量
回复:运行脚本时显示图形@txnelson ,
谢谢它的工作。 但是我有一个后续问题……我的脚本中的变量:xSize、ySize、aColumns 和 bColumns 保存新脚本之外的值。 但是,当运行新脚本时,值不会在表达式内部传递。 我总是很难使用 Eval 和 Expr。 你能帮我指出如何解决这个问题吗?
回复:运行脚本时显示图形agraph 和 bgraph 代码需要成为脚本的一部分。下面是一个生成脚本的版本,该脚本将执行您需要的内容。
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
)
)
)
)
);
);