将多个图形框附加到一个窗口,而无需复制最新的附加我正在尝试创建一个窗口,其中添加了几个图形框,以帮助可视化我正在处理的数据。 我的设置与此类似。
thisWindow = new window("Test Window");
for(x = 1, x <=nitems(thingsToDraw), x++,
thisWindow << append(
graph box(
(setup of X and Y axis, scales and such)
(for loops that create dynamic shapes in the graph box)
);
);
);问题是,每次附加一个新的图形框时,它都会更改所有以前的图形框以匹配新的图形框。 我敢肯定有一种方法可以隔离图形框,以便它们在添加新图形框后就不再互相更新,但我无法弄清楚。 如果我通过调整大小和设置使所有框都唯一,则它们似乎不会相互复制。 但这违反了循环的目的以及我试图首先创建它们的原因。 我尝试将其设置为函数并调用它,以及将其设置为即时评估的表达式。 两种结果是相同的。
我正在使用JMP 14。
回复:将多个图形框附加到单个窗口,而无需复制最新的附加我敢打赌,您所有的图形脚本都使用相同的变量,并且每次迭代都更改这些变量中的值。如果是这种情况,则所有图将使用新值重新绘制。您必须为每个图形脚本将变量转换为文字值。
回复:将多个图形框附加到单个窗口,而无需复制最新的附加这是一个简单的解决方案。 它不会将Graph Box()复制到输出窗口,而是复制图形框的图片。
thisWindow = new window("Test Window");
for(x = 1, x <=nitems(thingsToDraw), x++,
thisWindow << append(
graph box(
(setup of X and Y axis, scales and such)
(for loops that create dynamic shapes in the graph box)
)<<GET picture=""></GET>回复:将多个图形框附加到单个窗口,而无需复制最新的附加此示例演示了我建议的方法。
Names Default to Here( 1 );
nw = New Window( "Multiple Plots",
vlb = V List Box()
);
a = [ 1, 2, 3, 4 ];
b = [ 2, 4, 6, 8 ];
c = [ 4, 3, 2, 1 ];
d = [ 8, 6, 4, 2 ];
For( plot = 1, plot <= N Row( a ), plot++,
Eval(
Substitute(
Expr(
vlb << Append(
Graph Box(
X Scale( -6, 6),
Y Name( "Amplitude" ),
Y Scale( -10, 10 ),
Y Function( aa + bb * Sine( cc * x / dd ), x )
)
);
),
Expr( aa ), a[plot],
Expr( bb ), b[plot],
Expr( cc ), c[plot],
Expr( dd ), d[plot]
)
);
);回复:将多个图形框附加到单个窗口,而无需复制最新的附加哈!那就是我所需要的。 我试图找出如何以某种方式复制它,因为我认为这会更容易,但是我找不到方法。 复制图片,然后将其添加到图片框非常完美!而且我可以只获取图形框本身而没有轴标签等图像,从而改善了我要尝试做的事情。
谢谢!