Formatear múltiples gráficos de distribución de vidaHola a todos, estoy intentando formatear escalas de ejes y aplicar objetivos a 4 gráficos de distribución de vida que JMP muestra como salida de este código.
Myld hace referencia a una ventana que tiene 4 distribuciones de Life.
Estoy tratando de recorrer esas 4 distribuciones de vida mediante la búsqueda en el título; la ventana tiene distribución de vida.
Luego quiero cambiar los ejes x e y para cada uno de esos gráficos de Weibull.
De alguna manera, el código solo cambia el primer gráfico y los 3 restantes no cambian; es probable que no pueda agarrar el controlador para el resto de los gráficos correctamente.
¿Puede alguien ayudarme a corregir este código para lograr lo que estoy intentando hacer?
Better if the "Add Ref Line(2 " can be turned into a variable so I can supply 2 as an argument.
De esta manera, puedo agregar una línea de referencia diferente para los cuatro gráficos dentro del bucle for. Estos valores se pueden almacenar en una lista antes de ejecutar el bucle.
Gracias
myld = Life Distribution(
Perspective( Compare Groups ),
Y( :Voltage ),
Grouping( :flavor ),
By( :A, :B, :C, :D),
Confidence Interval Method( Likelihood ),
Select Distribution( Distribution, Weibull ),
Select Scale( Weibull ),
Tabbed Report( 0 ),
Show Confidence Area( 0 )
);
report_windows = Get Window List( "myld" );//; << Get Window Title
report_of_interest = Empty();
For Each( {report_window}, report_windows,
outline_title = Try( report_window[Outline Box( 1 )] << get title, "" );
If( Starts With( outline_title, "Life Distribution" ),
print(outline_title);
report_of_interest = report_window;
ref = report_window[Outline Box( 1 )] << Get Scriptable Object;
xaxis = Report( ref )[axis box( 2 )];
xaxis << Axis Settings(
Format( "Precision", 6, 2 ),
Min( 1 ),
Max( 5 ),
Inc( 0.01 ),
Minor Ticks( 1 ),
Add Ref Line(2, "Dotted", "Black", "", 2 ),
Label Row( {Major Grid Line Color( "Light Yellow" ), Show Major Grid( 1 )} )
);
yaxis = Report( ref )[axis box( 1 )];
yaxis << Axis Settings(
Min( 0 ),
Max( 1 ),
Inc( 0.1 ),
Minor Ticks( 0 ),
Add Ref Line(0.5, "Dotted", "Black", "", 2 )
);
);
);Automatización y scriptingAnálisis y modelado de datos básicosAnálisis de confiabilidadRe: Formatear múltiples gráficos de distribución de vida ¿Lista de todos los objetos de la plataforma?
Hay muchos objetos con la tecla auxiliar "Distribución de vida"; simplemente tome el superior.
Y a partir de ahí está el primer FrameBox.
OBs = (Current Report() << xpath( "//OutlineBox[@helpKey and not(ancestor::OutlineBox[@helpKey])]" ))
For Each({OB}, OBs,
xaxis = OB[axis box( 2 )];
xaxis << Axis Settings(
Format( "Precision", 6, 2 ),
Min( 1 ),
Max( 5 ),
Inc( 0.01 ),
Minor Ticks( 1 ),
Add Ref Line(2, "Dotted", "Black", "", 2 ),
Label Row( {Major Grid Line Color( "Light Yellow" ), Show Major Grid( 1 )} )
);
yaxis = OB[axis box( 1 )];
yaxis << Axis Settings(
Min( 0 ),
Max( 1 ),
Inc( 0.1 ),
Minor Ticks( 0 ),
Add Ref Line(0.5, "Dotted", "Black", "", 2 )
);
);Re: Formatear múltiples gráficos de distribución de vidaSegún la versión de JMP, tienes distintas opciones (yo uso la versión JMP18). Cuando usas la columna Por en tu plataforma, puedes obtener una lista de plataformas que luego puedes recorrer en bucle (también puedes obtener la lista usando XPath). Normalmente intento encontrar algún OutlineBox muy sólido y luego lo uso para "unir" los índices.
Esto no es exactamente lo mismo que lo que estás haciendo, pero debería darte algunas ideas sobre lo que se puede hacer.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Reliability/Fan.jmp");
dt << New Column("Group", Nominal, Numeric, Formula(Row() <= 35));
lds = dt << Life Distribution(Y(:Time), Censor(:Censor), By(:Group));
refs = Associative Array();
refs["0"] = 0.2;
refs["1"] = 0.4;
// show(lds);
For Each({ld}, lds,
rep = Report(ld);
grouptitle = rep << get title;
// show(rep << get title);
groupname = Word(-1, grouptitle, "=");
// Be careful with axis indices as there can be "hidden" axis
yaxis = rep[Outline Box("Compare Distributions"), AxisBox(1)];
xaxis = rep[Outline Box("Compare Distributions"), AxisBox(2)];
// Two methods shown here
xaxis << Min(1000) << Max(12000) << Inc(1000) << Format("Precision", 6, 2) << Minor Ticks(1) << Label Row(
{Major Grid Line Color("Light Yellow"), Show Major Grid(1)}
);
yaxis << Axis Settings(
Format("Precision", 6, 2),
Min(0),
Max(1),
Inc(0.1),
Minor Ticks(1),
Add Ref Line(refs[groupname], "Dotted", "Black", "", 2)
);
);

Re: Formatear múltiples gráficos de distribución de vidaGracias, lo aprecio.