如何在图表中全局设置级别<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我使用的一些脚本是从图表创建的。通常这些图表具有JMP分成级别的数据,但就我的目的而言,它们实际上是相同的。例如,以下代码用于跨站点的平均排除率图表。
图表 (
X ( : IDENT代码 ) ,
ÿ ( 意思 ( : 排除率 )) ,
添加误差条到平均值 ( 名称 ( “置信区间(汇集)” )( 0.95 )) ,
叠加轴 << {{ 格式 ( “固定十二月” , 12 , 3 ) ,敏 ( 0.935 ) ,马克斯 ( 0.9975 ) ,
公司 ( 0.005 ) ,小蜱虫 ( 1 )}} ,
叠加堆栈轴 << {{ 格式 ( “固定十二月” , 12 , 0 ) ,敏 ( - 1.5 ) ,马克斯 ( 8.5 ) ,公司 ( 1 ) ,
小蜱虫 ( 1 )}} ,
水平 [ 1 ] << { 颜色 ( - 4221340 ) ,标记 ( 29 )} ,
水平 [ 2 ] << { 颜色 ( - 4221340 ) ,标记 ( 29 )} ,
水平 [ 3 ] << { 颜色 ( - 4221340 ) ,标记 ( 29 )} ,
水平 [ 4 ] << { 颜色 ( - 4221340 ) ,标记 ( 29 )} ,
水平 [ 五 ] << { 颜色 ( - 4221340 ) ,标记 ( 29 )} ,
水平 [ 6 ] << { 颜色 ( - 4221340 ) ,标记 ( 29 )} ,
水平 [ 7 ] << { 颜色 ( - 4221340 ) ,标记 ( 29 )} ,
ÿ [ 1 ] << 点图 ( 1 ) ,
SendToReport (
调度 ({} , “102” , ScaleBox , { 格式 ( “百分” , 6 , 0 ) ,显示主要网格 ( 1 )}) ,
调度 ({} , “” , AxisBox ( 2 ) , { 添加轴标签 ( “平均值(排除率)” )}) ,
调度 ({} , “平均值(排除率)” , TextEditBox , { 设置字体大小 ( 20 )}) ,
调度 (
{} ,
“图表图” ,
FrameBox ,
{ 帧大小 ( 704 , 536 ) ,标记大小 ( 6 )}
)
)
)
为上一个报告创建脚本时,有七个站点,但现在有十个,所以最后三个图使用默认设置。当级别数量发生变化时,有没有办法在全局范围内设置这些级别而不是单独设置这些级别?
Re:如何在图表中全局设置级别所以,我现在是另一个报告周期,并从去年发现了这个帖子。我试过了 pmroz 昨天的建议,它一直很好,直到它停止这样做。我第一次使用提出的技术 pmroz 它工作得很好。对于数据集中的每个级别,正确的颜色和标记类型应用于图形上的每个点。当我试图在另一个数据表脚本中使用该技术时,它无法工作;执行脚本时没有生成任何错误,但使用了JMP的默认颜色和标记,而不是我在脚本中定义的内容。有趣的是,现在我修改的第一个脚本也使用JMP默认值而不是我在脚本中定义的脚本。
这是代码:
Names Default To Here(1);
Delete Symbols();
dt = Current Data Table();
UniqueValueList = Function({inList},
{Default Local},
tmp = [=> 0];
Insert Into(tmp, inList);
tmp << Get Keys;
);
identCodes = :IDENT Code << Get Values;
uniqueCodes = UniqueValueList(identCodes);
nCrossings = NItems(uniqueCodes);
dt << Chart(
X(:IDENT Code),
Y(Mean(:Read Rate)),
Add Error Bars to Mean(Name("Confidence Interval (pooled)")(0.95)),
Overlay Axis << {{Format("Fixed Dec", 12, 2), Min(0.77), Max(1.05), Inc(0.02),
Minor Ticks(1)}},
Overlay Stack Axis << {{Min(-10)}},
For(i = 1, i <= nCrossings, i++,
Level[i] << {Colors(-4221340), Markers(29)}
),
Y[1] << Point Chart(1),
SendToReport(
Dispatch(
{},
"102",
ScaleBox,
{Format("Percent", 6, 0), Minor Ticks(1), Show Major Grid(1),
Show Minor Grid(0)}
),
Dispatch({}, "", AxisBox(2), {Add Axis Label("Mean(Read Rate)")}),
Dispatch({}, "Mean(Read Rate)", TextEditBox, {Set Font Size(20)}),
Dispatch(
{},
"Chart Graph",
FrameBox,
{Frame Size(1056, 464), Marker Size(6)}
)
)
)根据我从JSL调试器中看到的内容, nCrossings 正确设置,但似乎忽略了Chart语句中的For循环。不幸的是,单步执行代码并没有帮助,因为Chart是单个语句,因此调试器不会单步调试代码。
我究竟做错了什么?
Re:如何在图表中全局设置级别看起来这可能是我正在寻找的东西。我想知道我是否可以在图表代码中放置For循环,但我不知道我可以在JSL中创建用户定义的函数,或者在这种情况下需要。我会试试你的解决方案。
Re:如何在图表中全局设置级别您可以在图表代码中放置一个循环。
DT = 新表 ( “例” ,添加行 ( 8 ) ,
新栏目 ( “IDENT代码” ,字符 , “标称” ,
设定值 ( { “AA” , “AA” , “AA” , “BB” , “BB” , “CC” , “CC” , “CC” } ) ) ,
新栏目 ( “排除率” ,数字 , “连续” ,格式 ( “最好” , 12 ) ,
设定值 ( [ 0.05 , 0.07 , 0.08 , 0.5 , 0.6 , 0.4 , 0.3 , 0.2 ] ) )
) ;
ident_codes = DT : IDENT代码 << 得到价值 ;
unique_codes = get_unique_values ( ident_codes ) ;
ncodes = NITEMS ( unique_codes ) ;
DT << 图表 (
X ( : IDENT代码 ) ,
ÿ ( 意思 ( : 排除率 )) ,
添加误差条到平均值 ( 名称 ( “置信区间(汇集)” )( 0.95 )) ,
叠加轴 << {{ 格式 ( “固定十二月” , 12 , 3 ) ,敏 ( 0.935 ) ,马克斯 ( 0.9975 ) ,
公司 ( 0.005 ) ,小蜱虫 ( 1 )}} ,
叠加堆栈轴 << {{ 格式 ( “固定十二月” , 12 , 0 ) ,敏 ( - 1.5 ) ,马克斯 ( 8.5 ) ,公司 ( 1 ) ,
小蜱虫 ( 1 )}} ,
//为每个级别指定相同的颜色和标记
对于 ( 一世 = 1 ,一世 <= ncodes ,一世 ++,
水平 [ 一世 ] << { 颜色 ( - 4221340 ) ,标记 ( 29 )} ,
) ,
ÿ [ 1 ] << 点图 ( 1 ) ,
SendToReport (
调度 ({} , “102” , ScaleBox , { 格式 ( “百分” , 6 , 0 ) ,显示主要网格 ( 1 )}) ,
调度 ({} , “” , AxisBox ( 2 ) , { 添加轴标签 ( “平均值(排除率)” )}) ,
调度 ({} , “平均值(排除率)” , TextEditBox , { 设置字体大小 ( 20 )}) ,
调度 (
{} ,
“图表图” ,
FrameBox ,
{ 帧大小 ( 704 , 536 ) ,标记大小 ( 6 )}
)
)
)
这是get_unique_values函数的代码:
Get_unique_values = 功能 ( { in_list } ,
{ 默认本地 } ,
TMP = [ => 0 ] ;
插入 ( TMP , in_list ) ;
TMP << 得到钥匙 ;
) ;
Re:如何在图表中全局设置级别谢谢,但这不是我在全球范围内的意思。我对锁定JMP以同样方式创建所有图表不感兴趣。我在正在进行的项目中有特定数据集的脚本,其中级别的数量可能会从报告期间变为报告期间。JMP生成脚本的方式,级别设置是显式的,所以我想知道是否有办法全局设置级别在图表中 。对于具有46个级别的数据集,我有一个类似的脚本,并且脚本生成了46个Level参数行,尽管每个级别具有完全相同的设置。
似乎JMP假设级别始终是显式的,并且用户总是希望它们在图中以不同的方式表示。有些情况属实,但在此图表中被视为水平的是x轴上的类别。
Re:如何在图表中全局设置级别您可以在首选项中设置默认值:
文件==>首选项==>图表
可以在那里指定默认标记和颜色集

如果这不能满足您的需求,则可以轻松修改脚本以测试找到的级别数,并根据需要生成代码。