如何在JSL中(在Graph Builder中)更改图例名称?我在CSV文件(很多列,很多行)中获得了很多数据,并且正在JSL中使用基本模板来标准化图形的生成。(重新缩放轴,重命名轴,标准化线条的颜色等。)平均而言,我每天平均可以获得一个CSV文件,因此我想将数据放入JMP数据表中,运行脚本并使用图形输出全部自动化。
默认情况下,我的JMP文件的标签名称为列标题,而作为图例完全不提供信息。一种解决方法是重命名所有列,但我希望保留标签名称,因此可以直接在图例设置中操作文本。(但是使用JSL完成,而不是手动完成。)
我可以轻松访问图例框,例如:
gbR = gb << Report; // gbR << Show Tree Structure;
s = gbR[legendbox(1)];
s << Set Title("new title");在所附的PNG中,您会看到这个想法。
我现在遇到的问题是如何访问图例框中的文本(标题除外),以便我可以操纵它并使用JSL对其进行更改。
我看到由图形生成器生成的脚本说的是“传奇模型”和“级别名称”,但是我在尝试的众多事情中都没有成功。
任何对此的指导将不胜感激。
如前所述,使用JSL,如何访问图例文本以将其从默认值更改为?
谢谢。
脚本编写回复:如何在JSL中更改图例名称(在Graph Builder中)?图例Box()的脚本编制索引中的详细信息未显示任何允许更改图例中实际标签的消息。但是,由于图例中的值直接来自数据表中的值,因此您可以简单地更改/重新编码数据表中的值或设置“值标签”列属性。回复:如何在JSL中更改图例名称(在Graph Builder中)?感谢您确认我没有错过任何显而易见的事情。
不幸的是,我看不到(或看不到)“价值标签”如何实现我想要实现的目标。在某种程度上,我的目的是有效地修改列名,而不是操纵在列标题下方的行中找到的数据值。
如果我为一个简单的表创建了图例文字中的几个值,如果给定列使用“设置名称”,例如,“ Column(dt,1)<< Set Name(“ New name”);“这一行语法导致第1列数据的文本更新并成为“新名称”。
我的实际数据图具有“均值(…标记名称…)”类型的图例文本。如果在我的实际数据中使用<< << Set Name,我仍然会遇到一个有问题的图例文本,因为它包含“ Mean(...列名...)”。
关于如何操作给定列的图例文本的任何想法都非常了解。也许我只是从头开始创建一个图例,以便可以访问和操作这种“自制”图例中的所有属性。我希望这是脚本编写的,而不是每次我制作一张新图表(可能每天)时都需要人工注意的东西。
回复:如何在JSL中更改图例名称(在Graph Builder中)?在图形生成器脚本中是否可以执行以下操作:
Graph Builder(
Variables( X( :age ), Y( :height ), Y( :weight, Position( 1 ) ) ),
Elements( Line( X, Y( 1 ), Y( 2 ), Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
4,
Level Name( 0, "abcd", Item ID( "Mean(height)", 1 ) ),
Level Name( 1, "efgh", Item ID( "Mean(weight)", 1 ) )
)}
),
Dispatch( {}, "400", LegendBox, {Set Title( "My Title" )} )
)
);回复:如何在JSL中更改图例名称(在Graph Builder中)?谢谢。是的,当然可以。我想我需要一个变量来捕获图例文本的所需名称,因为我想到的是不同的图形?
例如,按照示例Graph Builder语法:
_Legend1 = "abcd";
_Legend2 = "efgh";
如果是这样,我是否需要使用以下内容来管理变量的使用?
Eval(
Substitute(
Expr(
最后,此选项是否可能是实现图例文本更“直接”操纵的唯一方法?
回复:如何在JSL中(在Graph Builder中)更改图例名称?这是另一种可能性:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Variables( X( :age ), Y( :height ), Y( :weight, Position( 1 ) ) ),
Elements( Line( X, Y( 1 ), Y( 2 ), Legend( 4 ) ) )
);
lgnd = gb << Get Legend Display;
item1 = lgnd << Get Item( 4, 1 );
item1 << Set Label("Line 1");
item2 = lgnd << Get Item( 4, 2 );
item2 << Set Label("Line 2");
“获取项目”中的第一个数字是“图形生成器”中“图例”参数的值。第二个数字将成为该图例的索引。有时候正确设置这些数字可能很棘手,因为我们并不总是显示所有图例。如果要查看图例的完整列表,请转到“图例设置”。
回复:如何在JSL中(在Graph Builder中)更改图例名称?亲爱的保罗,
在附加的PNG中,您会看到图形生成器输出,无论是否运行,我都会运行语法
lgnd = gb << Get Legend Display;
item1 = lgnd << Get Item( 4, 1 );
item1 << Set Label("Line 1");
item2 = lgnd << Get Item( 4, 2 );
item2 << Set Label("Line 2");我看到图例中的文字没有变化,我遵循语法的逻辑,但看不到任何影响。
在第二个PNG中,您将看到执行完完整语法后我所想的。
如果您仍然可以研究此问题,并让我知道一种方法,我将不胜感激。谢谢,斯科特。
回复:如何在JSL中(在Graph Builder中)更改图例名称?抱歉。这是JMP 16中的新功能。我不知道它刚刚被添加,并且在JMP 15中不可用。您必须尝试第一种方法,直到JMP 16可用。再次,对于错误信息,我深表歉意。