列切换器和图形生成器你好,
我有很多列,我将它们组合在一起。
在图形生成器中,我有 X 轴常量,但 Y 轴应该具有列切换器功能,我们可以在其中选择要从所述列组中切换的参数。
首先,我告诉 JSL 组中应包含哪些列,以及哪一列应是我的第一列
colList = dttable << get column names( continuous );
col1 = colList[1];
这是代码和我收到的错误,
Graph Builder(
Size( 570, 621 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :batch_no ), Y( :col1 ) /*###*/ ),
Elements( Points( X, Y, Legend( 8 ) ) ),
Column Switcher( :col1, {:colList} )
)
你能告诉我应该为 Y 变量写什么,以便我可以从第一列开始,然后添加列切换器。
提前致谢
基础数据分析和建模数据存取实验设计视窗回复:列切换器和图形生成器您正在指定
:col1
冒号告诉 JMP 数据表中有一个名为“col1”的列(请参阅 JMP 文档中的范围界定); Col1 是一个内存变量,而不是列。删除冒号,您的代码应该可以工作。
回复:列切换器和图形生成器嗨,吉姆,
感谢您的帮助。
我现在得到了图表,但是列切换器仍然不起作用。
dtrelsplit << Newscript ("graph",
Graph Builder(
Size( 570, 621 ),<BR />
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :batch_no ),
Y(col1),
),
Elements( Points( X, Y, Legend( 8 ) ) ),
Column Switcher(
col1, {colList}
),
),
Column Switcher cannot find specified column col1 in platform script</CODE></PRE>
<P>这是显示的错误</P>
<BR />
</LINGO-BODY>
<LINGO-SUB id="lingo-sub-724513" slang="en-US" mode="CREATE">回复:列切换器和图形生成器</LINGO-SUB>
<LINGO-BODY id="lingo-body-724513" slang="en-US" mode="CREATE">
<P>以下是我的修改</P>
<PRE><CODE class=" language-jsl">Graph Builder(
Size( 570, 621 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( <SPAN class="lia-emoticons-autosuggestions"><SPAN class="lia-emoticons-search-term">:batch_no</SPAN></SPAN> ), Y( as column(col1) ) ),
Elements( Points( X, Y, Legend( 8 ) ) ),
Column Switcher( col1, colList )
)
;
colList 是一个列表,因此不需要第二组 {}
回复:列切换器和图形生成器谢谢
回复:列切换器和图形生成器JMP 是否变得更加严格了?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
colLst = { :Height, :Weight, :Age };
// doesn't work
dt << New Script( "test",
Graph Builder(
Variables( X( :Weight ), Y( :Height ) ),
Elements( Points( X, Y ) ),
Column Switcher( :Height, colLst )
)
);
// does work
dt << New Script( "test2",
Graph Builder(
Variables( X( :Weight ), Y( :Height ) ),
Elements( Points( X, Y ) ),
Column Switcher( :Height, { :Height, :Weight, :Age } )
)
);
// does work
Eval( Eval Expr( dt << New Script( "test3",
Graph Builder(
Variables( X( :Weight ), Y( :Height ) ),
Elements( Points( X, Y ) ),
Column Switcher( :Height, Expr( colLst ) )
)
)));
回复:列切换器和图形生成器您参考的是哪两个版本的 JMP?
回复:列切换器和图形生成器JMP19。
编辑:我很难判断 colList 变量在 JMP18 或更早版本中是否有效。我感到很惊讶,因为我找到了一些关于使用将列表传递给变量以供进一步使用的参考资料。
回复:列切换器和图形生成器@雷塞尔 ,
因此,使用新执行的 JMP 18 干净实例,您所包含的、暗示在 JMP 18 中为您工作的示例脚本对我来说不起作用。
问题是由于 JMP 为您包含的示例脚本提供的隔离,其中第一行
Names Default To Here( 1 );
此函数将创建的变量隔离为脚本执行时独有的。因此,变量 collist 仅在脚本运行时才为脚本所知。当保存到数据表中的嵌入式脚本运行时,这是一个新的脚本环境,并且它没有定义变量 collist。
两个版本的代码之所以能够正确执行,是因为在第一种情况下,值被硬编码到脚本中,而在第二种情况下,
Expr( colLst )
在执行代码之前将变量 colist 扩展为硬编码值,使嵌入在数据表中的脚本成为脚本的硬编码版本。
因此,就您而言,JMP 19 与版本 18 相比没有变化
回复:列切换器和图形生成器啊,好的。我想这应该是一个“命名空间”问题吧?
另外,我并没有声称它在JMP18中对我有效。我当时想知道为什么这里提出的、看起来如此清晰的解决方案不起作用。然后我错误地怀疑这可能与JSL的演变有关。事实并非如此。
谢谢您的澄清!
回复:列切换器和图表构建器很棒的对话:)
用放大镜仔细观察JSL的螺母和螺栓……
我只是想知道变量()和Column Switcher() 之间的区别。
Variables( ... Y( as column(col1) ) ),
Column Switcher( col1, colList )
这个也行:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
cols = dt << get column names( continuous );
col1= cols[1];
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X(col1 ), ),
Elements( bar( X ), ),
Column Switcher( col1, cols )
);
还有这个:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
cols = dt << get column names( continuous, "String" );
col1= cols[1];
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X(Column(col1) ), ),
Elements( bar( X ), ),
Column Switcher( col1, cols )
);
哪些方法行不通:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
cols = dt << get column names( continuous, "String" );
col1= cols[1];
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X(col1 ), ),
Elements( bar( X ), ),
Column Switcher( col1, cols )
);
所以, 列切换器()可以接受字符串类型。
变量()需要一个名称,或者一个列(通过As Column()或柱子()创建)。
回复:列切换器和图形生成器@hogi您的结果的意思是它不是环境或名称空间问题,而是其他问题?
回复:列切换器和图形生成器不,正如@txnelson所解释的,表脚本的问题是一个命名空间问题。
字符串、名称和列只是我们可以了解的其他东西。