這是一種可能有用的方法:
將公共代碼放入單獨的字符串。 如果有很多雙引號,請使用\ [和] \ 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))))))