これは私が以前に送ったスクリプトへの更新です。 それはあなたの提案した出力によりよくマッチします。 また、出力が互いに干渉することなく、複数の選択セットを実行することもできます。 実行するサンプルの数には、(コンピュータのメモリ以外に)上限の制限もありません。
このスクリプトを最初に行った応答からこのスクリプトを使ってデータテーブルに埋め込むことも、別のスタンドアロンスクリプトとして実行することもできます。 どちらの場合も、出力に含める行(サンプル)を選択してからスクリプトを実行してください。
Names Default To Here( 1 );<BR />dt = Current Data Table();<BR /><BR />// Get the selected rows from the primary data table<BR />dttemp = dt << subset( selected columns( 0 ), selected rows( 1 ), invisible );<BR /><BR />// Create a random value to be used for this running of the script.<BR />// This is to make the values in this run unique to this run, incase<BR />// multiple runs are made against the data table, without closing the output<BR />TheRandom = Char( Random Integer( 1, 100000000 ) );<BR /><BR />// Wrap the code in a Substitution function, to add the TheRandom to the steps<BR />// that need to be kept unique. __xxx__ indicates the areas where substitution<BR />// has to be made<BR />Eval(<BR /> Substitute(<BR /> Expr(<BR /> // Make a list of the data tables this execution of the code<BR /> // will make, so they can be closed when the output window is<BR /> // closed<BR /> __DataTableList__ = {};<BR /> // Create the initial window<BR /> __nw__ = New Window( "Product Sample", TheVLB = V List Box() );<BR /> // This is the code that will be run when the above window is closed<BR /> __nw__ << on close(<BR /> For( i = 1, i <= N Items( __DataTableList__ ), i++,<BR /> Try( Close( Data Table( __DataTableList__[i]), nosave ) )<BR /> )<BR /> );<BR /> // Loop across all of the rows in the data table created from the<BR /> // selected rows in the original data table<BR /> For( loop = 1, loop <= N Rows( dttemp ), loop++,<BR /> // Create a new data table for each row<BR /> dttemp << clear select;<BR /> dttemp << select rows( loop );<BR /> dttemp1 = dttemp << subset(<BR /> selected rows( 1 ),<BR /> selected columns( 0 ),<BR /> invisible<BR /> );<BR /> // Stack the one row table to make transform it to the structure<BR /> // that Graph Builder can best use it<BR /> dtstacked = dttemp1 << Stack(<BR /> invisible,<BR /> columns(<BR /> :NAP,<BR /> :Name( " C1 NAP" ),<BR /> :C2 NAP,<BR /> :C3 NAP,<BR /> :C4 NAP,<BR /> :FLU,<BR /> :C1 FLU,<BR /> :C2 FLU,<BR /> :C3 FLU,<BR /> :Name( "PHE/ANT" ),<BR /> :Name( "C1 PHE/ANT" ),<BR /> :Name( "C2 PHE/ANT" ),<BR /> :Name( "C3 PHE/ANT" ),<BR /> :Name( "C4 PHE/ANT" ),<BR /> :DBT,<BR /> :C1 DBT,<BR /> :C2 DBT,<BR /> :C3 DBT,<BR /> :C4 DBT,<BR /> :Name( "FLRN/PYR" ),<BR /> :Name( "C1 FLRN/PYR" ),<BR /> :Name( "C2 FLRN/PYR" ),<BR /> :Name( "C3 FLRN/PYR" ),<BR /> :Name( "C4 FLRN/PYR" ),<BR /> :Name( "BaA/CHR" ),<BR /> :Name( "C1 BaA/CHR" ),<BR /> :Name( "C2 BaA/CHR" ),<BR /> :Name( "C3 BaA/CHR" ),<BR /> :Name( "C4 BaA/CHR" )<BR /> ),<BR /> Source Label Column( "Chemical Compound" ),<BR /> Stacked Data Column( "Data" )<BR /> );<BR /> // Close the no longer needed single row data table<BR /> Close( dttemp1, nosave );<BR /> // Set Row Order Level for the Chemical Compound column, which<BR /> // will order the axis on the graph in the order the data are <BR /> // found in the data table<BR /> dtstacked:Chemical Compound << set property( "Row Order Levels", 1 );<BR /> // Insert this table in the DataTableList, because it will remain<BR /> // open until the output window is closed<BR /> Insert Into( __DataTableList__, dtstacked << get name );<BR /> // Append to the output window the Graph Builder for this data table<BR /> TheVLB << append(<BR /> gb = dtstacked << Graph Builder(<BR /> Size( 542, 428 ),<BR /> Show Control Panel( 0 ),<BR /> Variables( X( :Chemical Compound ), Y( :Data ), Page( :Sample ) ),<BR /> Elements( Bar( X, Y, Legend( 6 ) ) ),<BR /> SendToReport(<BR /> Dispatch(<BR /> {},<BR /> "Chemical Compound",<BR /> ScaleBox( 2 ),<BR /> {Label Row( Label Orientation( "Angled" ) )}<BR /> ),<BR /> Dispatch(<BR /> {},<BR /> "Data",<BR /> ScaleBox( 2 ),<BR /> {Min( 0 ), Inc( 0.02 ), Minor Ticks( 0 )}<BR /> ),<BR /> Dispatch(<BR /> {},<BR /> "400",<BR /> ScaleBox,<BR /> {Legend Model( 6, Properties( 0, {Fill Color( 45 )} ) )}<BR /> ),<BR /> Dispatch(<BR /> {},<BR /> "graph title",<BR /> TextEditBox,<BR /> {Set Text( "Product Sample" )}<BR /> ),<BR /> Dispatch( {}, "X title", TextEditBox, {Set Text( "" )} ),<BR /> Dispatch( {}, "Y title", TextEditBox, {Set Text( "" )} ),<BR /> Dispatch( {}, "400", LegendBox, {Set Title( "" )} )<BR /> )<BR /> )<BR /> );<BR /><BR /> // Add reference lines every 2% <BR /> For( i = .02, i <= Report( gb )[AxisBox( 2 )] << get max, i = i + .02,<BR /> Report( gb )[AxisBox( 2 )] << Add Ref Line( i, "Solid", "Black", "", 1 );<BR /> );<BR /> // Adding reference lines changes the increment(JMP bug I think)<BR /> // so change the increment back to 2%<BR /> Report( gb )[AxisBox( 2 )] << inc( .02 );<BR /> );<BR /> ),<BR /> // These are the items to substitute<BR /> Expr( __nw__ ), Parse( "nw" || TheRandom ),<BR /> Expr( __DataTableList__ ), Parse( "DataTableList" || TheRandom )<BR /> )<BR />);<BR />// Close dttemp data table since it is no longer needed<BR />Close( dttemp, nosave );<BR /><BR />これは、埋め込みスクリプトを使用してデータテーブルを作成するスクリプトです。 グラフ化したい行(サンプル)を選択してから、埋め込みスクリプトをクリックして実行します。
New Table( "Sample Data Table",
Add Rows( 10 ),
New Script(
"Graph Selected Samples",
Names Default To Here( 1 );
dt = Current Data Table();
dttemp = dt << subset(
selected columns( 0 ),
selected rows( 1 ),
invisible
);
dtstacked = dttemp << Stack(
invisible,
columns(
:NAP,
:Name( " C1 NAP" ),
:C2 NAP,
:C3 NAP,
:C4 NAP,
:FLU,
:C1 FLU,
:C2 FLU,
:C3 FLU,
:Name( "PHE/ANT" ),
:Name( "C1 PHE/ANT" ),
:Name( "C2 PHE/ANT" ),
:Name( "C3 PHE/ANT" ),
:Name( "C4 PHE/ANT" ),
:DBT,
:C1 DBT,
:C2 DBT,
:C3 DBT,
:C4 DBT,
:Name( "FLRN/PYR" ),
:Name( "C1 FLRN/PYR" ),
:Name( "C2 FLRN/PYR" ),
:Name( "C3 FLRN/PYR" ),
:Name( "C4 FLRN/PYR" ),
:Name( "BaA/CHR" ),
:Name( "C1 BaA/CHR" ),
:Name( "C2 BaA/CHR" ),
:Name( "C3 BaA/CHR" ),
:Name( "C4 BaA/CHR" )
),
Source Label Column( "Chemical Compound" ),
Stacked Data Column( "Data" )
);
Close( dttemp, nosave );
dtstacked:Chemical Compound << set property( "Row Order Levels", 1 );
gb = dtstacked << Graph Builder(
Size( 534, 1464 ),
Show Control Panel( 0 ),
Variables( X( :Chemical Compound ), Y( :Data ), Page( :Sample ) ),
Elements( Bar( X, Y, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model( 6, Properties( 0, {Fill Color( 45 )} ) )}
),
Dispatch( {}, "400", LegendBox, {Set Title( "" )} )
)
);
gb << on close( Close( dtstacked, nosave ) );
),
New Column( "Sample",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] )
),
New Column( "NAP",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.002, 0.0302537593550514, 0.0466926784946118, 0.0448445924471598,
0.0478487853344995, 0.0154921119890641, 0.0365249534228351,
0.00493989895819686, 0.0235698992158286, 0.0381656375704333]
)
),
New Column( " C1 NAP",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.019, 0.00774147778982297, 0.029915005012881, 0.0468929482218809,
0.0092733804017771, 0.036089365969412, 0.00376344798482023,
0.00380945356236771, 0.00193938017473556, 0.0489603107678704]
)
),
New Column( "C2 NAP",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.08, 0.0270089123100042, 0.0226710953088477, 0.0259517372348346,
0.0184357883431949, 0.0128242306013126, 0.00318159612896852,
0.0317445193028543, 0.0380520822689868, 0.0067287613407243]
)
),
New Column( "C3 NAP",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.115, 0.0283634321223944, 0.0348076855710242, 0.0318920150578488,
0.0173453791385982, 0.0222847076184116, 0.0346989600521047,
0.0143180883196183, 0.0327768972115591, 0.0222957084132358]
)
),
New Column( "C4 NAP",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.09, 0.00166843675868586, 0.0287732524415478, 0.0219370269028004,
0.0127755957059562, 0.0223023804044351, 0.0351790483894292,
0.0249330674058292, 0.020071810176596, 0.0424596724130679]
)
),
New Column( "FLU",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.003, 0.0138887988573406, 0.038354084254941, 0.0252995605911128,
0.0154636751729995, 0.0433928036768921, 0.0134715204646345,
0.0445313894778956, 0.0290542597356252, 0.0141719027855434]
)
),
New Column( "C1 FLU",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.018, 0.0293069139991421, 0.0256769686636981, 0.00826683883252553,
0.0171085286648013, 0.0204629610797856, 0.00341956458706409,
0.0313640460087918, 0.0480407851564232, 0.0340318603476044]
)
),
New Column( "C2 FLU",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.038, 0.0330850324584171, 0.0437534969407134, 0.0109815957569517,
0.00449292429722846, 0.0132446803962812, 0.0386687645141501,
0.0415801736263093, 0.034111307727173, 0.00602988170552999]
)
),
New Column( "C3 FLU",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.082, 0.0477887129648589, 0.0355156372459605, 0.041393784352811,
0.015643085104879, 0.00226023636339232, 0.0251587821198627,
0.0304925097427331, 0.0429695688353386, 0.0474338214022573]
)
),
New Column( "PHE/ANT",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.01, 0.0427148100999184, 0.0202775471704081, 0.0149288747075479,
0.00559148345608264, 0.0421801740452647, 0.0240726777378004,
0.0209547791823279, 0.0244350242365617, 0.0497362994323485]
)
),
New Column( "C1 PHE/ANT",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.039, 0.00280673243640922, 0.0199594784926157, 0.0329235823897179,
0.01066317764204, 0.0144819677001797, 0.00979254531022161,
0.0220209252389614, 0.038684288996039, 0.0127347022991162]
)
),
New Column( "C2 PHE/ANT",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.06, 0.0486931873387657, 0.0215076145802159, 0.0244833285761997,
0.0286523971226998, 0.0172093356093392, 0.0289594860547222,
0.0275001738960855, 0.0266731308130547, 0.0466893218264449]
)
),
New Column( "C3 PHE/ANT",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.069, 0.0446601634738035, 0.0138321250828449, 0.0425168035281822,
0.0366099622820038, 0.0274317172830924, 0.0353664513374679,
0.00111495549138635, 0.0135933586545289, 0.00108291531680152]
)
),
New Column( "C4 PHE/ANT",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.031, 0.0144599841590971, 0.009610575562343, 0.0302202351707965,
0.0212843791709747, 0.0115216388173867, 0.0468299421959091,
0.00549429435911588, 0.0363094289952423, 0.0336387161160819]
)
),
New Column( "DBT",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.003, 0.0333379577584565, 0.00272550118085928, 0.0372126542304177,
0.00271068549877964, 0.0312318569093477, 0.00354533990845084,
0.0220444895469118, 0.021050514069153, 0.0383053797436878]
)
),
New Column( "C1 DBT",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.033, 0.0116053564054891, 0.0124466585058253, 0.0438335321764462,
0.00124102681153454, 0.044037665597396, 0.0495759285241365,
0.0475604402602185, 0.0456430103564635, 0.0310628124901559]
)
),
New Column( "C2 DBT",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.087, 0.0159295270822477, 0.0102833600859158, 0.0239058316384908,
0.0178571299198084, 0.0348719786126167, 0.00821598792239092,
0.00843277889839373, 0.0452348746119533, 0.01068949145847]
)
),
New Column( "C3 DBT",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[., 0.00672533513652161, 0.013112988761859, 0.0330644477382302,
0.0482545678631868, 0.0133067361686844, 0.0265975029869005,
0.0381060357526876, 0.0430836911720689, 0.049541658553062]
)
),
New Column( "C4 DBT",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.034, 0.0058728216253221, 0.0217233841579873, 0.0402756876784842,
0.0313993025359232, 0.029122445494635, 0.0155939766000956,
0.0420744900063146, 0.0285329493524041, 0.0489617482072208]
)
),
New Column( "FLRN/PYR",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.001, 0.0345496558696032, 0.0321322070148308, 0.0267007229174487,
0.0259779584354255, 0.0283408940385561, 0.0373562634971458,
0.0393744796728715, 0.0145546169539448, 0.0282392732428852]
)
),
New Column( "C1 FLRN/PYR",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.01, 0.0409959553205408, 0.0325308263734914, 0.049760709581431,
0.0423577155969106, 0.0143415241884068, 0.0192488916243892,
0.0224930502227508, 0.0348894201670773, 0.0425700373509899]
)
),
New Column( "C2 FLRN/PYR",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.019, 0.00380003489204682, 0.0340351563671138, 0.0209355363992509,
0.0493748148838058, 0.0330725406832062, 0.0281902657279279,
0.015132855331758, 0.00606476198509335, 0.026483667955501]
)
),
New Column( "C3 FLRN/PYR",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.041, 0.0477709266166203, 0.0290582531234249, 0.0284437057543546,
0.0460180501651484, 0.0212978765433654, 0.00925033876067028,
0.0150167961854022, 0.00671246657753363, 0.0208397668299731]
)
),
New Column( "C4 FLRN/PYR",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.03, 0.0333795196467545, 0.0334625377673656, 0.0027455012050923,
0.0280089165221434, 0.0129167727059685, 0.0241117861049715,
0.00186966460011899, 0.0295675685461611, 0.0391173240377102]
)
),
New Column( "BaA/CHR",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.005, 0.0472474740443286, 0.0311875404128805, 0.0246964252435137,
0.0193766511015128, 0.0417157581949141, 0.037641080430476,
0.0216226827097125, 0.0370904210142326, 0.00173414511815645]
)
),
New Column( "C1 BaA/CHR",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.008, 0.0445609674151055, 0.00482703192089684, 0.00970582901337184,
0.0416694305497222, 0.00920417479611933, 0.0252414871286601,
0.0213213407513686, 0.0301611067913473, 0.0423710284563713]
)
),
New Column( "C2 BaA/CHR",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.026, 0.0127562464796938, 0.00709548401203938, 0.0126328233701643,
0.0460777241429314, 0.0249449488269165, 0.0261664025301579,
0.0219898488600738, 0.0486704192098696, 0.0349820018485188]
)
),
New Column( "C3 BaA/CHR",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.01, 0.0036289812636096, 0.0457750377375633, 0.00400210773036815,
0.0182483235485852, 0.00714060053229332, 0.0418625881380867,
0.00615676692244597, 0.0475078795051668, 0.026821686824318]
)
),
New Column( "C4 BaA/CHR",
Numeric,
"Continuous",
Format( "Percent", 7, 2 ),
Set Values(
[0.004, 0.0381506804318633, 0.0201645611631684, 0.0330415739305317,
0.0110197423135396, 0.0322338481522165, 0.0153273207338061,
0.0281656794969458, 0.0119208308472298, 0.0111531151456293]
)
)
)
これはスクリプトからの出力例です。

この簡単なスクリプトは最大100サンプルを処理します。 その制限は簡単に克服することができます。 さらに、サンプルに含まれていたグリッド線を追加することができます。 そのためには、スクリプトを少し賢くする必要があります。
しかし、あなたはJMPがあなたが望むことができるという可能性だけを探していました、そして私はこれがそれが可能であることを明らかに示していると思います。