我正在尝试在图表上绘制一些曲线。但是对于某些变量,该曲线是不同的。我想知道是否有人有一个好方法可以根据本地数据过滤器中选择的内容来更改 yfunction() 。例如,如果我将年龄从 12 岁更改为 13 岁,我想要一个余弦波而不是正弦波或类似的东西。
注意:这是 JMP live 的,所以我不认为过滤器更改处理程序在那里工作。我最初只是在每个变量上单独绘制一个变量绘图,但这在 JMP live 上也不起作用,我不知道为什么。
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt << Graph Builder(
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 43 ) ), Smoother( X, Y, Legend( 44 ) ) ),
Local Data Filter(
Add Filter(
columns( :age ),
Where( :age == 12 ),
Display( :age, N Items( 6 ) )
)
),
SendToReport(
Dispatch(
{},
"height",
ScaleBox,
{Min( 47.4910973084886 ), Max( 78.4293207137927 ), Inc( 5 ),
Minor Ticks( 1 )}
),
Dispatch(
{},
"weight",
ScaleBox,
{Min( 43.4685580652897 ), Max( 152.924994106993 ), Inc( 20 ),
Minor Ticks( 1 )}
),
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Graphics Script(
5,
Description( "" ),
Pen Color( "red" );
Pen Size( 3 );
Y Function(
49.5348183760347 + 101.831529865667 / 2 * (1
+Sine( (2 * Pi() * (x - 50)) / 16.6 )),
x
);
)}
)
)
);
如果你不关心日记,这个目标很容易。 您可以简单地在对 Y Function() 的调用中使用用户函数,并在 Graph Builder 启动之外定义它。 然后使用带有数据过滤器的状态处理程序来定义一个新函数并发送框架框 << Reshow。
如果您需要日记,那么您不想使用任何变量。 在这种情况下,我将添加一个仅使用文字值的图形脚本,然后根据过滤器删除并添加一个新脚本。
玩得开心!
不过,这对 JMP live 不起作用吗?从我所见,JMP live 真的不喜欢脚本。无论哪种方式,我都会尝试。
Craige 是对的。目前我们不支持运行任意 JSL 脚本。
判断 JMP Live 是否支持您创建的内容的一种方法是发布到 JMP Live,然后下载从 JMP Live 的详细信息面板中捕获的脚本。如果您使用运行脚本所需的表(您也可以下载这些表!)运行此脚本,您在 JMP 中看到的内容就是在 JMP Live 上更新或重新生成报告时看到的内容。
如果您正在与另一个 JMP 用户合作,而该用户将下载您的内容以在 JMP 中进一步探索,那么这样做也会有所帮助。
我希望这能有所帮助,
~约翰