这是一种可能有用的方法:
将公共代码放入单独的字符串。 如果有很多双引号,请使用\ [和] \ constructs以提高可读性。
组装图形构建器代码(A || B || C等),并使用eval(parse())执行。
这是一个简单的示例,其中包含两个图形的一个公共字符串。
dt = open("$sample_data\Airline Delays.jmp");
common_str =
"dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Elapsed Time ), Y( :Distance ), Overlay( :Airline ) ),";
gb1_str = evalinsert(
"gb1 = ^common_str^
Elements( Area( X, Y, Legend( 21 ) ) )
)");
gb2_str = evalinsert(
"gb2 = ^common_str^
Elements( Points( X, Y, Legend( 11 ) ) )
)");
eval(parse(gb1_str));
eval(parse(gb2_str));
你好
我有一个脚本可以重现“图形生成器”图。三个脚本文件,每个脚本文件都应再现15个不同变量的图形生成器输出。基本上,我使用了Graph Builder来绘制所需的数据,将脚本保存在其中,并针对接下来的14个变量重复该脚本。结果,我有这样的迷思:
//第一个脚本文件dt = currentdatatable(); obj1 = dt << GraphBuilder(); obj2 = dt << GraphBuilder(); ... obj15 = dt << GraphBuilder(); //关注:每个对象代码中的大部分重复我想保留所有对象的“图形Bulder”功能设置(总共15个),但要避免代码内重复(以下一些示例)。 有什么办法可以在脚本开始时(或在单独的文件中)定义代码的这些部分(因为我有其他脚本文件使用相同的代码部分,并在运行代码时调用它)并使用那些作为代码中的变量使代码看起来更简单,更短?如果我要进行一些更改,这种方法也很有效。另一个问题:关于如何提高脚本编写技巧的任何建议?
非常感谢你。
例子:
Dispatch({},“ 400”,LegendBox,{设置标题(“”),字体(“ Segoe UI”,11,“ Plain”),图例位置({8,[1,5,9,9,3,6,11],9,[0、4、8],10,[2、7、10]}),位置({1、5、9、3、6、11、0、4、8、2、7,10})})要么
Dispatch({},“ 400”,ScaleBox,{传奇模型(8,等级名称(0,“变量3平均值”,项目ID(“ 3”,1)),等级名称(1,“变量5平均值”,物品ID(“ 5”,1)),等级名称(2,“ 6个平均值的平均值”),物品ID(“ 6”,1)),等级名称(3,“变量3标准偏差”,物品ID(“ 3” “,2)),级别名称(4,”变量5标准偏差“,项目ID(” 5“,2)),级别名称(5,”变量6标准偏差“,项目ID(” 6“,2) ),Base(0,0,0,项目ID(“ 3”,1)),Base(1,0,1,项目ID(“ 5”,1)),Base(2,0,2,项目ID (“ 6”,1)),Base(3,0,0,Item ID(“ 3”,2)),Base(4,0,0,Item ID(“ 5”,2)),Base(5 ,0,0,项目ID(“ 6”,2)),属性(0,{线条颜色(53),线条宽度(4),标记(“ FilledCircle”),标记尺寸(6),梯度({值([0 1]),宽度(9),N个标签(6)})},项ID(“ 3”,1)),属性(1,{线颜色(56),线宽度(4),标记(“ FilledCircle”),标记大小(6),渐变({比例值([0 1]),宽度(9),N个标签(6)})},项目ID(“ 5“,1)),属性(2,{线色(38),线宽(4),标记(” FilledCircle“),标记大小(6),渐变({比例值([0 1]),宽度(9),N个Labels(6}})},项目ID(“ 6”,1)),Properties(3,{线条颜色(53),线宽(4)},项目ID(“ 3”,2 )),属性(4,{线色(56),线宽(4)},商品ID(“ 5”,2)),属性(5,{线色(38),线宽(4)},项目ID(“ 6”,2)),属性(-1,{线条颜色(13),线条宽度(4),标记(“ FilledCircle”),标记大小(6),渐变({比例值([0 1]),宽度(9),N个标签(6)})},项目ID(“ 4”,1)),属性(-1,{线颜色(13),线宽(4)},项目ID (“ 4”,2)),基数(-1,0,1,项目ID(“ 5”,1)),级别名称(-1,“平均”,项目ID(“ Mean”,1)),Base(-1,0,0,Item ID(“ Standard Deviation”,1)),Properties(-1,{线色(3),Marker(“ FilledCircle”),Marker Size(6),渐变({Scale值([0 1]),宽度(9),N个标签(6)})},项目ID(“平均值”,1)),属性(-1,{Line Co lor(1),线宽(4)},项目ID(“标准偏差”,1)),基准(-1,0,0,项目ID(“ 95%置信区间”,1)),属性(- 1,{线条颜色(32),线条宽度(2),渐变({比例值([0 1]),宽度(9),N标签(6)})},项目ID(“ 95%置信区间” ,1))),图例模型(9,级别名称(0,“可变3个独立值”,项目ID(“ 3”,1)),级别名称(1,“可变5个独立值”,项目ID(“ 5“,1)),级别名称(2,”变量6个独立值“,项目ID(” 6“,1)),Base(0,0,0,项目ID(” 3“,1)),基本(1,0,1,Item ID(“ 5”,1)),Base(2,0,2,Item ID(“ 6”,1)),Properties(0,{线条颜色(37),线条宽度(4)},项目ID(“ 3”,1)),属性(1,{线颜色(40),线宽(4)},项目ID(“ 5”,1))),属性(2,{线色(38),线宽(4)},项目ID(“ 6”,1)),级别名称(-1,“变量4个独立值”,项目ID(“ 4”,1)),基数( -1,0,0,项目ID(“ 4”,1)),属性(-1,{线色(42),线宽(4)},项目I D(“ 4”,1)),级别名称(-1,“个体值”,项目ID(“主要变量”,1)),属性(-1,{线条颜色(5)},项目ID( “主变量”,1)),属性(-1,{线条颜色(5),渐变({比例值([0 1]),宽度(9),N个标签(6)})},项目ID (“ Main-Variable”,1))),图例模型(10,级别名称(0,“ Variable 3 Smooth”,项目ID(“ 3”,1))),级别名称(1,“ Variable 5 Smooth”,物品ID(“ 5”,1)),级别名称(2,“可变6平滑”),物品ID(“ 6”,1)),属性(0,{线条颜色(53),线条宽度(4)} ,项目ID(“ 3”,1)),属性(1,{线颜色(56),线宽(4)},项目ID(“ 5”,1)),属性(2,{线颜色(38) ),线宽(4)},项目ID(“ 6”,1)),级别名称(-1,“变量4平滑”,项目ID(“ 4”,1)),属性(-1,{Line Color(13),Line Width(4)},Item ID(“ 4”,1)),Properties(-1,{Line Width(4)},Item ID(“ Smooth”,1))))))