毎回新しく作成された凡例列を使用して、各 var チャートに異なる凡例を持つ列の指定されたリストに対して複数の varchart を作成します。// I want to create journal of varcharts for a list of columns in a dataset with different legends. a legend column is mentioned which would change in reality for each loop. everything works expect the new column formula does not work. <BR />//In this example, i have used a static legend value of "ABC" but this would change for every loop in reality. the issue is the new formula column does not evaluate the column name <BR /><BR />dt = current data table();
mycolumnList = {"species","subject","season"};
For( i = 1, i <= N Items(mycolumnList), i++,
Try(dt << delete column("LegendCol"));
legend = "ABC";
Try( dt << New Column( "LegendCol", Formula( If(Column(mycolumnList[i])[Row()] == legend, "first", "rest" ) ) ) );
myvarChart = vlb << append(
dt << Variability Chart(
Y( :miles ),
X( eval(mycolumnList[i]) ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Connect Cell Means( 1 ),
Variability Summary Report( 1 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
Name( "Show Gauge R&R Specifications Dialog" )(0),
Automatic Recalc( 1 ),
SendToReport(
Dispatch(
{"Variability Chart for SORT@WAFER@T_GOOD"},
"Variability Chart",
FrameBox,
{Row Legend(
Name( "LegendCol" ),
Color( 1 ),
Color Theme( "JMP Default" ),
Marker( 1 ),
Marker Theme( "Solid" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
));
);アンモル@1996
自動化とスクリプト作成基本的なデータ分析とモデリングデータのブレンディングとクリーンアップデータの探索と視覚化Re: 毎回新しく作成された凡例列を使用して、var チャートごとに異なる凡例を持つ列の指定されたリストに対して複数の varchart を作成します。スクリプトを少し作り直しました。それが完全な解決策になるかどうかはわかりません。ただし、サンプルデータでは機能するようです。
Names Default To Here( 1 );
// I want to create journal of varcharts for a list of columns in a dataset
// with different legends. a legend column is mentioned which would change in
// reality for each loop. everything works expect the new column formula does not work.
//In this example, i have used a static legend value of "ABC" but this would change
// for every loop in reality. the issue is the new formula column does not evaluate
// the column name dt = current data table();
nw = New Window( "test", vlb = V List Box() );
dt = Current Data Table();
mycolumnList = {"species", "subject", "season"};
For( i = 1, i <= N Items( mycolumnList ), i++,
Try( dt << delete column( "LegendCol" ) );
legend = "ABC";
Eval(
Substitute(
Expr(
Try(
dt << New Column( "LegendCol", Formula( If( Char( As Column( _mycolumnList_ ) ) == _legend_, "first", "rest" ) ) )
)
),
Expr( _mycolumnList_ ), mycolumnlist[i],
Expr( _legend_ ), legend
)
);
myvarChart = vlb << append(
dt << Variability Chart(
Y( :miles ),
X( Eval( mycolumnList[i] ) ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Connect Cell Means( 1 ),
Variability Summary Report( 1 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
Name( "Show Gauge R&R Specifications Dialog" )(0),
Automatic Recalc( 1 ),
SendToReport(
Dispatch(
{"Variability Gauge Analysis for miles", "Variability Chart for miles"},
"Variability Chart",
FrameBox,
{Row Legend(
LegendCol,
Color( 1 ),
Color Theme( "JMP Default"(1) ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
)
);
);Re: 毎回新しく作成された凡例列を使用して、var チャートごとに異なる凡例を持つ列の指定されたリストに対して複数の varchart を作成します。ありがとう、ジム。しかし、これにはまだ小さな問題が 1 つあります。 どういうわけか、すべてのプロットに同じ凡例が表示されます。
たとえば、こんな感じ。凡例はループ内で毎回変わります。ただし、凡例は var チャートでは取り上げられません。すべてのプロットで常に最後の凡例列の凡例を取得します
nw = New Window( "test", vlb = V List Box() );
dt = Current Data Table();
mycolumnList = {"species", "subject", "season"};
mylegendList = Associative Array({"species","subject","season"},{"FOX","2","summer"});
For( i = 1, i <= N Items( mycolumnList ), i++,
Try( dt << delete column( "LegendCol" ) );
//legend = "ABC";
legend = mylegendList[mycolumnList[i]];
Eval(
Substitute(
Expr(
Try(
dt << New Column( "LegendCol", Formula( If( Char( As Column( _mycolumnList_ ) ) == _legend_, "first", "rest" ) ) )
)
),
Expr( _mycolumnList_ ), mycolumnlist[i],
Expr( _legend_ ), legend
)
);
myvarChart = vlb << append(
dt << Variability Chart(
Y( :miles ),
X( Eval( mycolumnList[i] ) ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Connect Cell Means( 1 ),
Variability Summary Report( 1 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
Name( "Show Gauge R&R Specifications Dialog" )(0),
Automatic Recalc( 1 ),
SendToReport(
Dispatch(
{"Variability Gauge Analysis for miles", "Variability Chart for miles"},
"Variability Chart",
FrameBox,
{Row Legend(
LegendCol,
Color( 1 ),
Color Theme( "JMP Default"(1) ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
))));
Re: 毎回新しく作成された凡例列を使用して、var チャートごとに異なる凡例を持つ列の指定されたリストに対して複数の varchart を作成します。あなたがやっていることを行うには、グラフごとに個別の凡例列を作成する必要があると思います
Names Default To Here( 1 );
nw = New Window( "test", vlb = V List Box() );
dt = Current Data Table();
mycolumnList = {"species", "subject", "season"};
mylegendList = Associative Array( {"species", "subject", "season"}, {"FOX", "2", "summer"} );
For( i = 1, i <= N Items( mycolumnList ), i++,
Try( dt << delete column( "LegendCol" || Char( i ) ) );
//legend = "ABC";
legend = mylegendList[mycolumnList[i]];
Eval(
Substitute(
Expr(
Try(
dt << New Column( "LegendCol" || Char( i ),
Formula( If( Char( As Column( _mycolumnList_ ) ) == _legend_, "first", "rest" ) )
)
)
),
Expr( _mycolumnList_ ), mycolumnlist[i],
Expr( _legend_ ), legend
)
);
Eval(
Substitute(
Expr(
myvarChart = vlb << append(
dt << Variability Chart(
Y( :miles ),
X( Eval( mycolumnList[i] ) ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Connect Cell Means( 1 ),
Variability Summary Report( 1 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
Name( "Show Gauge R&R Specifications Dialog" )(0),
Automatic Recalc( 1 ),
SendToReport(
Dispatch(
{"Variability Gauge Analysis for miles", "Variability Chart for miles"},
"Variability Chart",
FrameBox,
{Row Legend(
_LegendCol_,
Color( 1 ),
Color Theme( "JMP Default"(1) ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
)
)
),
Expr( _legendcol_ ), Parse( "LegendCol" || Char( i ) )
)
);
);