Agregar líneas verticales al histogramaConstruí un histograma usando el generador de gráficos y me gustaría adaptar mi secuencia de comandos para agregar líneas verticales en un valor de mi elección superpuesto en el histograma.
secuencias de comandosRe: agregar lineas verticales al histogramaAquí hay un par de opciones. El primero es primero dejar que JMP lo escriba por usted y luego usar Inserte una expresión en otra usando Eval Insert, Eval Expr, Parse y Substitute y el segundo se modifica a partir del ejemplo de índice de secuencias de comandos que se encuentra al buscar Línea de referencia
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
ref_line = 180;
// Option1
Eval(EvalExpr(gb1 = dt << Graph Builder(
Size(529, 457),
Show Control Panel(0),
Variables(X(:weight)),
Elements(Histogram(X, Legend(3))),
SendToReport(
Dispatch(
{},
"weight",
ScaleBox,
{Min(57), Max(205.037037037037), Inc(20), Minor Ticks(0),
Add Ref Line(Expr(ref_line), "Solid", "Black", "", 1)}
)
)
)));
// Option2
gb2 = dt << Graph Builder(
Size(529, 457),
Show Control Panel(0),
Variables(X(:weight)),
Elements(Histogram(X, Legend(3)))
);
axisbox = Report(gb2)[AxisBox(1)];
axisbox << Add Ref Line(ref_line, "Dotted", red, "F mean", 2);Re: agregar lineas verticales al histogramaEsto está tangencialmente relacionado, pero lo pondré aquí de todos modos.Está relacionado específicamente con la plataforma de distribución (no con el generador de gráficos que estaba en la pregunta original), pero puede aplicarse a otras plataformas según las preferencias del usuario, no estoy seguro.No esperaría ser un problema en el generador de gráficos, principalmente porque no creo que las preferencias del usuario entren tanto en juego.
En la plataforma de distribución, si no tiene configurados los ejes de probabilidad, densidad y conteos para mostrar, entonces el índice para el cuadro del eje de los datos de la distribución es 1, lo que significa que puede hacer referencia a él con report(xxxx)[ AxisBox(1)], similar a la publicación anterior de Jarmo.Pero si agrega cualquiera de los otros ejes, el índice se convierte en 2, 3 o 4 (el máximo de los ejes totales que se muestran). Si siempre tiene la misma configuración, puede codificarlo y debería estar bien. Pero si el script se implementa ampliamente, debe tener en cuenta otras configuraciones de preferencia del usuario. Intenté hacer un 'obtener elementos' pero creo que siempre devolvió 4 aunque algunos estaban vacíos. Probablemente podría haber encontrado una solución allí, pero terminé usando xpath.Puede mirar el xml o mirar las propiedades de un informe de salida para ver qué podría funcionar. Es decir, no solo busque un cuadro de eje, ya que podría haber 4 de ellos, busque el cuadro de eje en un cuadro de borde en un cuadro desplegable, que parece ser exclusivo del eje 'principal'. Espero que esto resista la prueba del tiempo, pero hasta ahora me ha funcionado.
myrpt = current report();
//show( myrpt<<GET xml=""></GET>// use xpList[1] instead of referencing an axisbox index. <BR />// If there's multiple distributions in the report, loop through or be more specific when grabbing the xpath.
Re: agregar lineas verticales al histogramaA veces, estos tienen que construirse un poco caso por caso. Por lo general, uso XPath con alguna combinación de << hijo, << hermano, << padre, etc.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dist = dt << Distribution(
Stack(1),
Continuous Distribution(
Column(:height),
Horizontal Layout(1),
Vertical(0),
Prob Axis(1),
Quantile Box Plot(1),
Normal Quantile Plot(1)
)
);
axisbox = (Report(dist) << XPath("//ScaleBox"))[1];
axisbox << Add Ref Line(55, "Dotted", red, "F mean", 2);
dist = dt << Distribution(
Stack(1),
Continuous Distribution(
Column(:height),
Horizontal Layout(1),
Vertical(0),
Quantile Box Plot(1),
Normal Quantile Plot(1)
)
);
axisbox = (Report(dist) << XPath("//ScaleBox"))[1];
axisbox << Add Ref Line(55, "Dotted", red, "F mean", 2);
dist = dt << Distribution(
Stack(1),
Continuous Distribution(
Column(:height),
Horizontal Layout(1),
Vertical(0),
Count Axis(1),
Prob Axis(1),
Density Axis(1),
Quantile Box Plot(1),
Normal Quantile Plot(1)
)
);
axisbox = (Report(dist) << XPath("//ScaleBox"))[1];
axisbox << Add Ref Line(55, "Dotted", red, "F mean", 2);
Una opción también es eliminar el efecto de las preferencias de los usuarios, pero dependiendo de la plataforma, esto puede requerir mucho esfuerzo para establecer todos los valores predeterminados en 1 o 0.
Re: agregar lineas verticales al histograma>>Una opción también es eliminar el efecto de las preferencias de los usuarios, pero dependiendo de la plataforma, esto puede requerir mucho esfuerzo para establecer todos los valores predeterminados en 1 o 0.
Sí estoy de acuerdo. Pensé en hacer algo así para algunas secuencias de comandos, pero en realidad la secuencia de comandos particular de la que proviene este código de ejemplo está diseñada para recorrer todas las distribuciones en la ventana de salida y hacer que los contenedores de histograma sean más pequeños para que se vea más "normal". Solo un script genérico de un botón que en realidad no genera ningún resultado, solo modifica los ejes.
Re: Add Vertical Lines to HistogramAnother option maybe to add a column property spec limit, and let it show in the histogram of distribution platform.
The value can then be used for other platforms as well (process capability ...).
