Las columnas bloqueadas están arruinando el scriptEnseño diagramas de cajas atípicas y escribí un guión para agregar la longitud completa del bigote para poder mostrar visualmente a mi clase cómo se calculan los bigotes. El script funciona muy bien a menos que mis columnas estén bloqueadas. ¿Por qué bloquear las columnas afectaría mi secuencia de comandos? Después de ejecutar el script, lo guardé en una ventana de script y es correcto, pero no sacará los bigotes de algunos grupos. Aquí está mi script, todavía estoy trabajando en él, estoy usando JMP Pro 17.0.0 en una MacBook:
Names Default To Here( 0 );
Clear Log();
dt = Current Data Table();
If( Not( Is Scriptable( dt ) ),
// Check that there is a data set open;
// ca=Caption("Please Open Design Data Set", Back Color(yellow));
// Stop();
dtsel = Pick File( "Open File", {"JMP|jmp", "All files|*"} );
If( dtsel == "",
Stop(),
Try( dt = Open( dtsel ), Stop() )
);
);
output = Expr(
dt2 = Data Table( dt ) << Summary(
Group( bycol ),
Median( nm ),
Interquartile Range( nm ),
Quantiles( 25, nm ),
Quantiles( 75, nm ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
columnnamemedian = Column( dt2, 3 ) << Get Name;
columnnamesample = Column( dt2, 2 ) << Get Name;
columnnamegroup = Column( dt2, 1 ) << Get Name;
columnameIQR = Column( dt2, 4 ) << Get Name;
columnname25 = Column( dt2, 5 ) << Get Name;
columnname75 = Column( dt2, 6 ) << Get Name;
Medians = Column( dt2, columnnamemedian ) << Get As Matrix;
Samplesize = Column( dt2, columnnamesample ) << Get As Matrix;
Groups = Column( dt2, columnnamegroup ) << Get As Matrix;
IQR = Column( dt2, columnameIQR ) << Get As Matrix;
Q25 = Column( dt2, columnname25 ) << Get As Matrix;
Q75 = Column( dt2, columnname75 ) << Get As Matrix;
meanno = N Rows( dt2 );
LWhis = {};
UWhis = {};
i = 1;
For( i = 1, i <= meanno, i++,
LWhis[i] = Q25[i] - 1.5 * IQR[i];
UWhis[i] = Q75[i] + 1.5 * IQR[i];
Show( Q25[i] );
Show( Q75[i] );
Show( LWhis[i] );
Show( UWhis[i] );
Show( IQR[i] );
Show( i );
If( LWhis[i] > Q25[i],
LWhis[i] = Q25[i],
LWhis[i] = LWhis[i]
);
If( UWhis[i] < Q75[i],
UWhis[i] = Q75[i],
UWhis[i] = UWhis[i]
);
);
MinLW = LWhis[1];
MaxUW = UWhis[1];
i = 1;
For( i = 1, i <= meanno, i++,
If( LWhis[i] < MinLW,
MinLW = LWhis[i],
MinLW = MinLW
);
If( UWhis[i] > MaxUW,
MaxUW = UWhis[i],
MaxUW = MaxUW
);
);
If( MinLW < 0,
MinLW = MinLW * 1.1,
MinLW = MinLW * 0.9
);
If( MaxUW < 0,
MaxUW = MaxUW * 0.9,
MaxUW = MaxUW * 1.1
);
Current Data Table( dt );
//Close(dt2, NoSave);
gb = Graph Builder(
Variables( X( (Column( bycol )) ), Y( Column( nm ) ) ),
Elements( Points( X, Y ), Box Plot( X, Y ) ),
SendToReport(
Dispatch( {} ),
),
);
gbr = gb << report;
Report( gb )[AxisBox( 2 )] << Max( MaxUW ) << Min( MinLW );
i = 1;
For( i = 1, i <= meanno, i++,
Show( LWhis[i] );
Show( UWhis[i] );
Eval(
Eval Expr(
gbr[Framebox( 1 )] << Add graphics Script(
Pen Color( Red );
Line Style( "Dotted" );
V Line( Expr( i ), Expr( LWhis[i] ), Expr( Q25[i] ) );
V Line( Expr( i ), Expr( Q75[i] ), Expr( UWhis[i] ) );
);
)
)
;
);
//dt2 << Minimize Window;
Close( dt2, Nosave );
);
w = New Window( "Variables",
<<MODAL></MODAL>Mac OSRe: Las columnas bloqueadas están arruinando el script¿Podría darnos algunos ejemplos? Imágenes o conjunto de datos donde sucede. No estoy seguro de por qué las columnas bloqueadas afectarían el script gráfico, pero es posible que deba modificar el "índice" de las líneas para que comience desde 0 en lugar de 1.
(1 y 2)

(0 y 1)

Re: Las columnas bloqueadas están arruinando el script
El primero no tiene líneas dibujadas, pero cuando miro el guión de este, se nota que debería tenerlas. El número 7 es un espacio y el 3 es incorrecto. Aquí está el guión para esta trama exacta. Observe que las líneas rojas no se alinean con lo que está dibujado. Adjunto mi archivo JMP que utilicé para esto:
Graph Builder(
Variables( X( :Process Configuration ), Y( :Y ) ),
Elements( Points( X, Y, Legend( 1 ) ), Box Plot( X, Y, Legend( 2 ) ) ),
SendToReport(
Dispatch(
{},
"Y",
ScaleBox,
{Min( 6.36165 ), Max( 36.07175 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Graphics Script(
13,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 1, 13.039, 18.502 );
V Line( 1, 22.144, 27.607 );
), Add Graphics Script(
14,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 2, 7.0685, 16.061 );
V Line( 2, 22.056, 31.0485 );
), Add Graphics Script(
15,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 3, 11.772, 17.973 );
V Line( 3, 22.107, 28.308 );
), Add Graphics Script(
16,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 4, 14.0465, 18.737 );
V Line( 4, 21.864, 26.5545 );
), Add Graphics Script(
17,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 5, 13.529, 18.002 );
V Line( 5, 20.984, 25.457 );
), Add Graphics Script(
18,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 6, 8.0605, 17.335 );
V Line( 6, 23.518, 32.7925 );
), Add Graphics Script(
19,
Description( "" ),
Pen Color( Red );
Line Style( "Dotted" );
V Line( 7, 16.3455, 19.356 );
V Line( 7, 21.363, 24.3735 );
)}
)
)
);Re: Las columnas bloqueadas están arruinando el scriptSi copio la tabla que te envié a una nueva tabla sin columnas bloqueadas, funciona. ¿Cómo se modifica el "índice" de la línea? Tengo otros archivos con columnas bloqueadas y tampoco funcionan.
Re: Las columnas bloqueadas están arruinando el scriptLas líneas se desplazan en uno (creo que con datos nominales/ordinales el eje X comienza desde 0


Puedes modificar esta parte de tu script.
For(i = 1, i <= meanno, i++,
Show(LWhis[i]);
Show(UWhis[i]);
Eval(
Eval Expr(
gbr[Framebox(1)] << Add graphics Script(
Pen Color(Red);
Line Style("Dotted");
V Line(Expr(i), Expr(LWhis[i]), Expr(Q25[i]));
V Line(Expr(i), Expr(Q75[i]), Expr(UWhis[i]));
);
)
);
);
Lo más fácil es agregar i-1 dentro de la Línea V (Expr()).
Re: Las columnas bloqueadas están arruinando el scriptIntenté cambiar mi columna nominal a numérica/continua para ver si funcionaba y no funcionó. Lo único que funcionaría sería copiarlo en otra tabla, por eso supuse que eran las columnas bloqueadas. No estoy seguro de por qué no funcionó, pero cuando agregué una declaración if para buscar si el tipo de modelado era nominal o continuo y agregué su sugerencia, funcionó. Todavía estoy confundido, pero lo hice funcionar. ¡Gracias! No creo que me hubiera dado cuenta de eso ya que intenté convertirlo a numérico/continuo y no funcionó.