如何使用 JSL 在 Graph Builder 中动态引用比例框的 y 轴<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />或者任何地方。
我正在编写一个函数来生成一些专业的工作图表。 我在画布上做了一些额外的绘图,需要在 y 轴上重新调整图形以适应所有内容。 我可以通过获取我正在绘制的每个点的最大值和最小值并将这些值(+/- 5%)设置为我的上限和下限来实现这一点。 但是,为了使更改生效,我需要调用轴标签。 我试过索引号。 我尝试将名称存储为变量并调用该变量。 我的所有尝试似乎都不起作用,并且该主题的文档并不全面。
例子:
在图形生成器并发送到报告中,我有:
| | 派遣({}, |
| | | “轴名称”, |
| | | 秤盒, |
| | | {格式( "固定十进制", 15, 0 ), 最小值( llim ), 最大值( ulim ), |
| | | Inc( 1 ), 小刻度( 1 )} |
| | ), |
为了让它在函数中工作,我目前必须对名称进行硬编码。 我希望它能够动态更新,无论我绘制什么图表。
一些东西的效果
| | 派遣({}, | |
| | | Y 轴, |
| | | 秤盒, |
| | | {格式( "固定十进制", 15, 0 ), 最小值( llim ), 最大值( ulim ), |
| | | Inc( 1 ), 小刻度( 1 )} |
| | ), | |
就是我正在寻找的。
回复:如何使用 JSL 在 Graph Builder 中动态引用比例框的 y 轴作为 Jim 示例的后续,您可以使用 XPath() 获取报告中所有 AxisBox 的列表。然后,您可以循环浏览该列表,并根据需要进行所需的更改。下面演示了 XPath(),然后简单地选择 For 循环中的每个轴。
/* 获取报告中所有 AxisBox 的列表 */
国标轴=报告(国标) << X路径( “//轴框” ) ;
/* 循环遍历每个轴以查看每个轴引用哪个轴 */
为了(我= 1 ,我<= N 项(国标轴) ,我++,
国标轴[我] <<选择;
等待( 1 ) ;
) ;
我希望这有帮助!
温迪
回复:如何使用 JSL 在 Graph Builder 中动态引用比例框的 y 轴这完美解决了我的问题。 谢谢吉姆。 我的函数仍在进行中:使其足够通用以供共享,但一旦我弄清楚了,但一旦我使其足够通用,我将在 JMP 社区上发布。
对于任何想知道的人,我相信我的问题是在报告完全生成之前我试图在报告中引用该报告(尽管我可能是错的)。
回复:如何使用 JSL 在 Graph Builder 中动态引用比例框的 y 轴您提出了一个关于图形生成器中轴识别的有趣问题。我查看了 Graph Builder 使用的轴结构,它似乎有一个可以使用的组织。

上面的图形生成器图表有一个 Y 轴和多个 X 轴。我尝试的图表结构始终使用轴 1 作为第一个 X 轴,使用轴 2 和第一个 Y 轴。因此,在使用下面的代码时,即使图形类型发生变化,轴编号也保持不变。
名称默认为此处( 1 ) ;
dt =打开( “$SAMPLE_DATA/半导体能力.jmp” ) ;
国标=图形生成器(
尺寸(第593章,第526章) ,
显示控制面板( 0 ) ,
变量(X( : PNP1) , Y( : NPN1) , X组( :地点 ) ) ,
元素( 点( X ,是,传奇( 5 ) ) ,更平滑(X ,是,传奇( 6 ) ) )
) ;
报告(gb)[轴盒( 1 )] <<分钟( 150 ) ;
Axis Box(2) 参考将更改 Y 轴。
还有轴框 3、4、5 和 6,它们是显示的其他 5 个 X 轴。

此示例向 Y 轴添加了第二个变量,但是,Axis Box(1) 仍然是第一个 X 轴,Axis Box(2) 是顶列“PNP4”的 Y 轴,而 Axis Box( 3) 是“NPN1”列的 Y 轴。
名称默认为此处( 1 ) ;
dt =打开( “$SAMPLE_DATA/半导体能力.jmp” ) ;
国标=图形生成器(
尺寸(第593章,第526章) ,
显示控制面板( 0 ) ,
变量(X( : PNP1) , Y( : PNP4) , Y( : NPN1) , X组( :地点 ) )) ;
如果您用鼠标单击灰色展开三角形并选择
编辑==>显示树结构
您应该能够确定您正在使用的图形的轴盒结构,并且能够以编程方式确定如何引用正确的轴盒
回复:如何使用 JSL 动态引用 Graph Builder 中比例框的 y 轴访问单个轴对象后,下一个任务是找出哪个轴属于哪个“轴”。
第一个轴是 x 轴还是 y 轴。
那么其他绘图类型呢?同样的逻辑是否适用于图形生成器框和图形框?
请看一下这个愿望:
通过 JSL 更轻松地获取报告结果
除了从报告中获得结果之外,还可以简化调整报告的方式。
派遣命令功能齐全——可以直接使用“X title”之类的信息来控制消息发送到的位置:
SendToReport( Dispatch( {}, "X title", TextEditBox, {Set Text( "xxx" )} ) )
对于Xpath来说,这似乎还不可能......