如何通过 JSL 向 Graph Builder 图中的图例添加标签名称?我有一个脚本,使用 Graph Builder 创建图表,显示测量数据。生成图表后,我逐月循环测量,并使用命令 Add Variable 添加每月计算的曲线拟合,以显示记录数据随时间的变化。
现在,我正在尝试弄清楚如何通过脚本为每个绘制的曲线拟合添加标签。曲线拟合的列标签目前类似于“6 月 24 日数据”、“7 月 24 日数据”等。当我在图例窗口中右键单击每个月数据的曲线拟合时,我可以通过选择标签>名称来添加它。这将在每个绘制的曲线旁边显示名称。我还可以右键单击绘图区域,选择自定义并访问曲线拟合的名称设置,但这不会在绘图上更新 - 当我返回设置时,它已被取消选择。这似乎是一个错误,但也许我只是用错了方法。无论如何,我正在尝试找到一种方法来通过 JSL 添加这样的标签名称。
我尝试使用工作流捕获这些更改,但它无法捕获我对图例设置所做的更改。
我搜索了几次,但找不到关于使用 JSL 为图表添加这一特定内容的任何讨论,在脚本索引中也找不到相关文档。有一种名为图例服务器的东西,但我找不到相关讨论。也许我可以使用 SendToReport(Dispatch())?还有其他我应该考虑的变体吗?我还希望得到任何关于在哪里可以学到更多关于 JSL 的知识,以便通过 Graph Builder 制作和调整图表的建议。
自动化和脚本回复:如何通过 JSL 向 Graph Builder 图中的图例添加标签名称?我认为您必须通过图例服务器(或在构建图形生成器表达式时)来执行此操作
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Transform Column("Row", Formula(Row())),
Variables(X(:Row), Y(:height)),
Elements(Line Of Fit(X, Y, Legend(5), Confidence of Fit(0))),
SendToReport(
Dispatch({}, "400", ScaleBox,
{Legend Model(
5,
Properties(
0,
{Line Label Properties({Name Label(1)})},
Item ID("height", 1)
)
)}
)
)
);
gb << Add Variable({:weight, Role("Y"), Position(1)});
server = gb << Get Legend Server;
items = server << Get Legend Items;
For(i = 1, i <= N Items(items[1]), i++,
items[1][i] << Set Properties(
{Line Label Properties({Name Label(1)})}
)
);
回复:如何通过 JSL 向 Graph Builder 图中的图例添加标签名称?该解决方案有效,谢谢!
有趣的是,当我将添加标签的图保存为交互式 HTML 时,打开时标签并不在图中。但是,当我将其保存为常规 HTML 文件并打开时,标签会包含在内。我想提一下,以防其他人也采用这种方法,并且以防您想将其注册为错误,也因为您的解决方案已记录在此处,因此更容易重现。
回复:如何通过 JSL 向 Graph Builder 图中的图例添加标签名称?您使用的是哪个 JMP 版本?根据非常快速的测试,它似乎在 JMP18.1 中有效

回复:如何通过 JSL 向 Graph Builder 图中的图例添加标签名称?啊,很高兴知道,我使用的是 17.0.0 版本。当我检查消息日志时,它说“不支持行标签,因此会从报告中省略。”所以这不是一个错误,显然应该先检查一下。
谢谢您的回复!
将其保存为图像也是可行的,其中包括行标签,这就是常规 html 保存所做的。
回复:如何通过 JSL 向 Graph Builder 图中的图例添加标签名称?没错。JMP 17 中已将行标签添加到 JMP,但直到 JMP 18 才支持 Interactive HTML。
谢谢,
~约翰
回复:如何通过 JSL 向 Graph Builder 图中的图例添加标签名称?嗨@Dape ,
感谢您没有将其称为错误,并提醒 JMP 用户社区读者,当某些内容未出现在交互式 HTML 版本中或交互式 HTML 版本包含非交互式元素时,最好查看日志以查看它是否是交互式 HTML 的已知限制。
当 JMP 添加新功能时,我们通常无法在同一发布周期内以交互式 HTML 形式支持该功能。相反,我们会专注于之前版本中添加的我们认为用户最需要的功能。
当我们觉得由于不支持某个特定功能而失去交互性是一种遗憾时,我们会将“不支持”消息写入日志;而当我们觉得某个功能需要在交互式 HTML 显示中以牺牲交互性为代价时,我们会使用“非交互式”消息。
无论哪种情况,我们都邀请用户通过 JMP 技术支持或 JMP 愿望清单告知我们,需要支持交互式 HTML 中的某个特定功能,因为我们会根据用户反馈确定我们的工作优先顺序。
您还指出,常规 HTML 导出使用图像并显示行标签。当我们决定“省略一项功能而不是失去交互性”不符合您的需求时,这可能是一个不错的选择。
谢谢,
~约翰