Crear varios gráficos variables para una lista dada de columnas con diferentes leyendas para cada gráfico variable usando una columna de leyenda recién creada cada vez.// 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 )
)}
)
)
));
);Anmol@1996
Automatización y secuencias de comandosAnálisis y modelado de datos básicosFusión y limpieza de datosExploración y visualización de datosRe: Creación de múltiples gráficos var para una lista dada de columnas con diferentes leyendas para cada gráfico var usando una columna de leyenda recién creada cada vez.He reelaborado un poco tu guión.No estoy seguro de que te dé la solución total.Sin embargo, parece funcionar en sus datos de muestra.
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: Creación de múltiples gráficos var para una lista dada de columnas con diferentes leyendas para cada gráfico var usando una columna de leyenda recién creada cada vez.Gracias Jim, pero esto todavía tiene un pequeño problema. De alguna manera todas las parcelas están recibiendo la misma leyenda.
Por ejemplo, algo como esto. la leyenda cambia cada vez en el bucle. sin embargo, las leyendas no se recogen en los gráficos var. siempre obtengo las leyendas de la columna de la leyenda final en todas las parcelas
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: Creación de múltiples varcharts para una lista dada de columnas con diferentes leyendas para cada gráfico var usando una columna de leyenda recién creada cada vez.Para hacer lo que está haciendo, creo que tendrá que crear una columna de Leyendas separada para cada gráfico
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 ) )
)
);
);