JSL 代码调试 - 需要“标签”方面的帮助你好,
在我的 JSL 代码中,我正在使用
dtt<
我可以在表格中看到,在“倾斜度”旁边添加了一个标签图标。然后我使用了图表生成器,并在该程序中执行了以下操作:
显示标签(1),
但是生成图表时,标签没有显示。请问您能帮忙解决这个问题吗?我还需要添加其他设置吗?
非常感谢
自动化和脚本编写回复:JSL 代码调试 - 需要“标签”方面的帮助通常情况下,您可以在左侧的“标签”部分启用标签(不同图表类型的启用位置可能有所不同)。

如果您对图表生成器满意,请复制脚本。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Cities.jmp");
dt << Set Label Columns(:City, :State);
gb = dt << Graph Builder(
Size(528, 454),
Show Control Panel(0),
Variables(X(:Longitude), Y(:Latitude)),
Elements(Points(X, Y, Legend(3), Label("Label by Row")))
);
回复:JSL 代码调试 - 需要“标签”方面的帮助您需要在控制面板中激活标签:

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
:name<< Label( 1 ); // no effect, label is already activated by default for this column
Graph Builder(
Size( 451, 447 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Label( "Label by Row" ) ), Smoother( X, Y ) )
);

回复:JSL 代码调试 - 需要“标签”方面的帮助-
回复:JSL 代码调试 - 需要“标签”方面的帮助谢谢你的建议,但很遗憾,问题仍然存在。我在JSL文件中用粗体标出了相关代码行。
dtt<
汇总(dtt,按 Group0 = 按 (:layout) 分组);
汇总(dtt,按Group1 = 按(:Label)分组);
汇总(dtt,按Group2 = 按(:Vt_flavor));
汇总(dtt,按Group3 = 按(:Z_width));
对于(nn =1,nn <= N 项(byGroup0),nn++,
对于(ii = 1,ii <= N Items(byGroup1),ii++,
对于(jj = 1,jj <= N 项(byGroup2),jj++,
对于(kk = 1,kk <= N 项(byGroup3),kk++,
dtt << select where(:Label == byGroup1[ii] & :Vt_flavor == byGroup2[jj] & :Z_width == byGroup3[kk] & :layout ==byGroup0[nn] );
//显示(ii,jj,kk,bygroup1[ii],bygroup2[jj],bygroup3[kk]);
sel = dtt << 获取选定的行;
如果(n 行(sel)> 0,
//显示("内部",ii,jj,kk);
dt = dtt << subset( selected rows(1), selected columns(0));
gb = dt << 图形构建器(
尺寸(266,228),
显示控制面板(0)
变量( X( :nmos ), Y( :pmos ), 叠加( :PDK ) ),
Elements( Points( X, Y, legend( 5 ), Label("按行标记") ) ),
显示标签(1),
SendToReport(
派遣(
{},
“nmos”,
ScaleBox,
{标签行(
{显示主网格(1), 显示次要标签(1), 显示次要网格(1)}
)}
),
回复:JSL 代码调试 - 需要“标签”方面的帮助请您生成一段代码,越短越好。
首先加载数据表,例如
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
并通过以下方式发布:

快速获得您问题的有用答案
快速获得正确问题的正确答案
回复:JSL 代码调试 - 需要“标签”方面的帮助非常抱歉问了这么愚蠢的问题。我不太明白您说的“激活标签”是什么意思。我只是在数据库上运行 JSL 脚本,并没有点击任何图形界面来激活任何东西。我以为把“skew”列设置为标签,然后按照您建议的添加“按行添加标签”就可以了?您能详细解释一下 JSL 脚本中的激活步骤吗(没有点击任何图形界面)?谢谢。
回复:JSL 代码调试 - 需要“标签”方面的帮助另外,我需要生成数百个图表,所以通过点击激活的方式不符合我的需求。谢谢。
回复:JSL 代码调试 - 需要“标签”方面的帮助请分享您的代码,我们可以检查一下……
使用 JMP 的巧妙/偷懒方法:
使用图形用户界面,让 JMP 生成代码。
回复:JSL 代码调试 - 需要“标签”方面的帮助附件是JSL代码和相关数据表。另外,图表的大小总是显示为Size(1401, 909),即使我的代码中将其设置为Size(266, 228)。如果您能帮忙查看一下,我将不胜感激。非常感谢您的时间和帮助。
回复:JSL 代码调试 - 需要“标签”方面的帮助使用图形用户界面 (GUI) 创建脚本意味着只需创建一次,复制脚本后即可继续使用 JMP 生成的 JSL 代码。如果 JMP 能够正确创建这些脚本(例如运行平台),那么它就是你所能使用的最佳 JSL 脚本编写工具。
关于你的问题:先解决单个图的问题(所以去掉循环,只用一个子集)。等它按预期运行后,再添加循环,这样更容易调试。我运行你的图时,得到以下结果:

我猜你的问题出在图形脚本上。我不太清楚你想用它做什么?
回复:JSL 代码调试 - 需要“标签”方面的帮助你直接使用了原代码,还是做了一些修改?
回复:JSL 代码调试 - 需要“标签”方面的帮助Names Default To Here(1);
dtt = Open("$DOWNLOADS/output_sorted_test.jmp");
dtt << Set Label Columns(:skew);
Summarize(dtt, byGroup0 = by(:layout));
Summarize(dtt, byGroup1 = by(:Label));
Summarize(dtt, byGroup2 = by(:Vt_flavor));
Summarize(dtt, byGroup3 = by(:Z_width));
nn = 1;
ii = 1;
jj = 1;
kk = 1;
dtt << select where(:Label == byGroup1[ii] & :Vt_flavor == byGroup2[jj] & :Z_width == byGroup3[kk] & :layout == byGroup0[nn]);
sel = dtt << get selected rows;
If(N Rows(sel) > 0,
dt = dtt << subset(selected rows(1), selected columns(0));
gb = dt << Graph Builder(
Size(266, 228),
Show Control Panel(0),
Variables(X(:nmos), Y(:pmos), Overlay(:PDK)),
Elements(Points(X, Y, legend(5), Label("Label by Row"))),
Show labels(1),
SendToReport(
Dispatch({}, "nmos", ScaleBox, {Label Row({Show Major Grid(1), Show Minor Labels(1), Show Minor Grid(1)})}),
Dispatch({}, "pmos", ScaleBox, {Label Row({Show Major Grid(1), Show Minor Labels(1), Show Minor Grid(1)})}),
Dispatch({}, "Graph Builder", FrameBox,
{Marker Size(6), Add Graphics Script(
6,
Description(""),
Summarize(dt, byGroup = by(:PDK));
colorList = {"Blue", "red", "Green", "Green"};
Fill Pattern([0]);
For(i = 1, i <= N Items(byGroup), i++,
Pen Color(colorList[i]);
theRows = dt << get rows where(
:PDK == byGroup[i] & :skew != "tttt" & :skew != "ff" & :skew != "fs" & :skew != "sf" & :skew != "ss"
);
If(Word(2, byGroup[i], "/") == "a",
Line Style("Dashed"),
);
theRows = theRows |/ theRows[1];
xMatrix = :nmos[theRows];
yMatrix = :pmos[theRows];
Line(xMatrix, yMatrix);
);
), Add Text Annotation(
Text(byGroup1[ii] || "_" || "Z" || byGroup3[kk] || "_" || bygroup2[jj] || "_" || bygroup0[nn]),
Background Color("White"),
Filled(0),
Font("Segoe UI", 14, "Plain")
)}
)
)
);
);
Write();
回复:JSL 代码调试 - 需要“标签”方面的帮助这很奇怪。我尝试只画一个图,但不知为何标签不显示。我还尝试复制你的代码并运行,结果标签仍然不显示。下面是我从单个图得到的结果,正如你所看到的,按行显示的标签没有出现(正如预期的那样)。我重新添加标签后再次运行脚本,结果还是一样——没有标签。
Graph Builder(
Size( 1430, 909 ),
Show Control Panel( 0 ),
Variables( X( :nmos ), Y( :pmos ), Overlay( :PDK ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch( {}, "nmos", ScaleBox,
{Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 ), Show Minor Labels( 1 )} )}
),
Dispatch( {}, "pmos", ScaleBox,
{Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 ), Show Minor Labels( 1 )} )}
),
Dispatch( {}, "Graph Builder", FrameBox,
{Marker Size( 6 ), Marker Drawing Mode( "Normal" ),
Add Graphics Script(
5,
Description( "" ),
Summarize( dt, byGroup = by( :PDK ) );
colorList = {"Blue", "red", "Green", "Green"};
Fill Pattern( [0] );
For( i = 1, i <= N Items( byGroup ), i++,
Pen Color( colorList[i] );
theRows = dt << get rows where(
:PDK == byGroup[i] & :skew != "tttt" & :skew != "ff" & :skew != "fs" & :skew != "sf" &
:skew != "ss"
);
If( Word( 2, byGroup[i], "/" ) == "a",
Line Style( "Dashed" )
);
theRows = theRows |/ theRows[1];
xMatrix = :nmos[theRows];
yMatrix = :pmos[theRows];
Line( xMatrix, yMatrix );
);
), Add Text Annotation(
Text( "cgate_per_um_Z120_dev1_s9999019999d9999019999" ),
Fixed Size( 0 ),
Text Box( {87, 62, 341, 134} ),
Background Color( "White" ),
Font( "Segoe UI", 14, "Plain" ),
Filled( 0 )
)}
)
)
)
注:TXNELSON 将 JSL 复制到 JSL 对象中,以便于阅读。
回复:JSL 代码调试 - 需要“标签”方面的帮助你粘贴的脚本和我的脚本不一样,因为我的脚本是……
Elements(Points(X, Y, legend(5), Label("Label by Row"))),
Show labels(1),
你没有
回复:JSL 代码调试 - 需要“标签”方面的帮助我试过了(代码片段如下)。图表中仍然没有显示标签。不知道哪里出了问题。谢谢。

回复:JSL 代码调试 - 需要“标签”方面的帮助说实话,我也不知道哪里出了问题。如果我运行我提供给你的脚本(稍微调整一下窗口大小),使用 JMP18 就会出现这种情况。

以及 JMP19

回复:JSL 代码调试 - 需要“标签”方面的帮助我更新一下JMP版本,看看是否能解决问题。非常感谢。