如何在图表中全局设置级别<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我使用的一些脚本是根据图表创建的。 通常,这些图表包含 JMP 分成级别的数据,但就我的目的而言,它们实际上是相同的。 例如,以下代码用于绘制跨站点的平均排除率图表。
图表(
X ( :识别码) ,
是(意思是( :排除率)) ,
将误差线添加到平均值中(姓名( “置信区间(合并)” )( 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 )} ,
等级[ 5 ] << {颜色( - 4221340 ) ,标记( 29 )} ,
等级[ 6 ] << {颜色( - 4221340 ) ,标记( 29 )} ,
等级[ 7 ] << {颜色( - 4221340 ) ,标记( 29 )} ,
是[ 1 ] <<点图( 1 ) ,
发送至报告(
派遣({} , “102” ,比例盒, {格式( “百分” , 6 , 0 ) ,显示主要网格( 1 )}) ,
派遣({} , ”” ,轴盒( 2 ) , {添加轴标签( “平均值(排除率)” )}) ,
派遣({} , “平均值(排除率)” ,文本编辑框, {设置字体大小( 20 )}) ,
派遣(
{} ,
“图表图” ,
框架盒,
{框架尺寸( 704 ,第536章) ,标记尺寸( 6 )}
)
)
)
当为上一个报告创建脚本时,有七个站点,但现在有十个,因此最后三个图使用默认设置。 当级别数量发生变化时,有没有办法全局设置这些级别,而不是单独设置这些级别?
回复:如何在图表中全局设置级别所以,我现在是另一个报告周期,并发现了去年的这条线索。 我试过普罗兹昨天的建议,效果很好,直到它停止这样做。 我第一次使用由普罗兹它工作得很好。 对于数据集中的每个级别,图表上的每个点都应用了正确的颜色和标记类型。 当我尝试在另一个数据表脚本中使用该技术时,它失败了;执行脚本时没有生成任何错误,但使用了 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已正确设置,但图表语句中的 For 循环似乎被忽略。 不幸的是,单步执行代码并没有帮助,因为 Chart 是单个语句,因此调试器不会单步执行其代码。
我究竟做错了什么?
回复:如何在图表中全局设置级别这看起来可能就是我正在寻找的东西。 我想知道是否可以在图表代码中放置一个 For 循环,但我不知道我可以在 JSL 中创建用户定义的函数,或者在这种情况下需要这样做。 我会尝试你的解决方案。
回复:如何在图表中全局设置级别您可以在图表代码中放置一个循环。
dt =新表( “例子” ,添加行( 8 ) ,
新专栏( “身份识别码” ,特点, “名义” ,
设定值( { “AA” , “AA” , “AA” , “BB” , “BB” , “抄送” , “抄送” , “抄送” } ) ) ,
新专栏( 「排除率」 ,数字, “连续的” ,格式( “最好的” , 12 ) ,
设定值( [ 0.05 , 0.07 , 0.08 , 0.5 , 0.6 , 0.4 , 0.3 , 0.2 ] ) )
) ;
身份代码= dt :识别码<<获取值;
唯一代码=获取唯一值(身份代码) ;
n 代码=尼特姆斯(唯一代码) ;
dt <<图表(
X ( :识别码) ,
是(意思是( :排除率)) ,
将误差线添加到平均值中(姓名( “置信区间(合并)” )( 0.95 )) ,
叠加轴<< {{格式( “固定十二月” , 12 , 3 ) ,最小( 0.935 ) ,最大限度( 0.9975 ) ,
公司( 0.005 ) ,轻微蜱虫( 1 )}} ,
叠加堆栈轴<< {{格式( “固定十二月” , 12 , 0 ) ,最小( - 1.5 ) ,最大限度( 8.5 ) ,公司( 1 ) ,
轻微蜱虫( 1 )}} ,
// 为每个级别分配相同的颜色和标记
为了(我= 1 ,我<= n 代码,我++,
等级[我] << {颜色( - 4221340 ) ,标记( 29 )} ,
) ,
是[ 1 ] <<点图( 1 ) ,
发送至报告(
派遣({} , “102” ,比例盒, {格式( “百分” , 6 , 0 ) ,显示主要网格( 1 )}) ,
派遣({} , ”” ,轴盒( 2 ) , {添加轴标签( “平均值(排除率)” )}) ,
派遣({} , “平均值(排除率)” ,文本编辑框, {设置字体大小( 20 )}) ,
派遣(
{} ,
“图表图” ,
框架盒,
{框架尺寸( 704 ,第536章) ,标记尺寸( 6 )}
)
)
)
这是 get_unique_values 函数的代码:
获取唯一值=功能( {列表中} ,
{默认本地} ,
tmp = [ => 0 ] ;
插入( tmp ,列表中) ;
tmp <<获取钥匙;
) ;
回复:如何在图表中全局设置级别谢谢,但这不是我所说的全球性的意思。 我不想将 JMP 锁定为以相同的方式创建所有图表。 我有一个针对正在进行的项目中的特定数据集的脚本,其中级别的数量可能会随着报告周期的不同而变化。 JMP生成脚本的方式,级别的设置是明确的,所以我想知道是否有办法全局设置级别在图表内。 我有一个类似的脚本,用于具有 46 个级别的数据集,并且该脚本生成了 46 个级别参数行,尽管每个级别都具有完全相同的设置。
JMP 似乎假定级别始终是明确的,并且用户始终希望它们在图表中以不同的方式表示。 在某些情况下确实如此,但此图表中被视为级别的是 x 轴上的类别。
回复:如何在图表中全局设置级别您可以在首选项中设置默认值:
文件==>首选项==>图表
可以在那里指定默认标记和颜色集

如果这没有达到您想要的效果,那么您的脚本可以轻松修改以测试找到的级别数,并根据需要生成代码。