复选框以在 Graph Builder 上打开/关闭抖动你好,
我想在图形构建器视图顶部有一个复选框对象,以打开/关闭重叠点的分离(抖动)。 我知道这可以从控制面板完成,但从可视化的角度来看,我想保持控制面板关闭。
下面的示例脚本为图形顶部的抖动创建控制元素。 尽管我尽了最大的努力,但我无法获得切换抖动的复选框;我不知道发送更新报告的正确方法是什么。
我请求您对语法的帮助。
Names Default To Here(1);
dt= Open("$SAMPLE_DATA/Big Class.jmp");
gb=Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ) ),
Elements(
Points( X, Y )
)
);
jitter = 1;
jitter_elements=H List Box(
cb=Check Box(
{"Jitter enabled"},
If(cb<<GET> gb << SendToReport(Elements(Points(Jitter( "Positive Grid" ), Jitter Limit( jitter )))), // This is not correct but something like this (maybe)
gb << SendToReport(Elements(Points(Jitter( "None" )))) // This is not correct but something like this (maybe)
);
),
sb = Slider Box( 0, 2, jitter,
neb << set( jitter );
),
neb = Number Edit Box(jitter,
<<SETFUNCTION></SETFUNCTION></GET>脚本回复:复选框以在 Graph Builder 上打开/关闭抖动好主意,不知道怎么做,期待答案。
回复:复选框以在 Graph Builder 上打开/关闭抖动据我所知,操纵元素是一团糟,当你进行分组时它会变得更加混乱。 这就是为什么我尝试(通常)避免它并只是重做图表。 这是您可以尝试使用更新元素更改抖动的一种方法
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
jitter = 1;
New Window("",
V List Box(
H List Box(
cb = Check Box(
{"Jitter enabled"},
If(cb << Get() == 1,
Report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), X, Y, Legend(3), Jitter("Positive Grid"), Jitter Limit(jitter)});
,
Report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), X, Y, Legend(3), Jitter("None")});
)
),
sb = Slider Box(0, 2, jitter, neb << set(jitter)),
neb = Number Edit Box(
jitter,
<<SETFUNCTION></SETFUNCTION>
其他有用的功能可能是添加元素和删除元素,另见这篇文章更新 Graph Builder 的 Element 语句
回复:复选框以在 Graph Builder 上打开/关闭抖动谢谢亚莫,
您的解决方案(更新元素)运行良好,非常好。
下面是进一步修改的版本,以获得更新图表的滑块和数字框。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
jitter = 0.2;
New Window("",
V List Box(
H List Box(
cb = Check Box(
{"Jitter enabled"},
If(cb << Get() == 1,
Report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), X, Y, Legend(3), Jitter("Positive Grid"), Jitter Limit(jitter)});
,
Report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), X, Y, Legend(3), Jitter("None")});
)
),
sb = Slider Box(0.1, 0.2, jitter,
neb << set(jitter);
If(cb << Get() == 1,
Report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), X, Y, Legend(3), Jitter("Positive Grid"), Jitter Limit(jitter)});
);
),
neb = Number Edit Box(
jitter,
<<SETFUNCTION>0.2, jitter=0.2);
sb << inval;
If(cb << Get() == 1,
Report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), X, Y, Legend(3), Jitter("Positive Grid"), Jitter Limit(jitter)});
);
neb << set(jitter);
)
)
)
),
gb = dt << Graph Builder(Show Control Panel(0), Variables(X(:height), Y(:weight)), Elements(Points(X, Y)));
)
);</SETFUNCTION>