¿Cómo detectar cambios en el orden del eje X?¿Cómo puedo detectar cambios en el orden del eje X? Utilizo el siguiente JSL para marcar el color de fondo, pero los usuarios pueden cambiar el orden del eje X como se muestra en la imagen a continuación. Si no puedo detectar que el usuario ha realizado este cambio en el gráfico, el área de color de fondo previamente marcada no seguirá el nuevo orden y no se actualizará.
Por ejemplo, si originalmente marqué la edad 13 y el usuario cambia el orden a 'Ascendente, Peso', necesito saber que el usuario ha activado el cambio de orden para que la marca roja se pueda actualizar correctamente a la posición de edad 13, en lugar de permanecer fija.
¿Qué métodos puedo utilizar para detectar cuándo el usuario cambia el orden del eje X, o cómo puedo hacer que el marcado de color de fondo cambie automáticamente con el orden?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
GraphX =dt<< Graph Builder(
Size( 534, 450 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :weight ), Overlay( :sex ) ),
Elements( Box Plot( X, Y, Legend( 4 ) ) )
);
rep1 = GraphX << report;
frameboxDCRFH = rep1 << XPath( "//FrameBox" );
frameboxDCRFH << Add Graphics Script(
Transparency( 0.1 );
Fill Color( "Red" );
Rect( 0.5, Y Origin() + Y Range(), 1.5, Y Origin(), 1 )
;
);

Automatización y scriptingRe: ¿Cómo detectar cambios en el orden del eje X?No creo que tengamos acceso a estos controladores, así que tendrías que tenerlo en cuenta en tu script gráfico o crear el coloreado usando un gráfico aparte. Una forma de tenerlo en cuenta con el script gráfico...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(534, 492),
Show Control Panel(0),
Variables(X(:age), Y(:weight), Y(:Column 6, Position(1)), Overlay(:sex)),
Elements(
Box Plot(X, Y(1), Legend(4)),
Points(X, Y(2), Overlay(0), Legend(6), Summary Statistic("Median"))
)
);
fb = Report(gb)[FrameBox(1)];
fb << Add Graphics Script(
fb = Report(gb)[FrameBox(1)];
barseg = fb << Find Seg(MarkerSeg(1));
xval = (barseg << Get X Values)[1];
Transparency(0.1);
Fill Color("Red");
Rect(xval - 0.5, Y Origin() + Y Range(), xval + 0.5, Y Origin(), 1)
);
Fórmula para la columna 6
If(:age == 13,
Col Median(:weight, :age),
.
)
Agregar gráfico de barras para el color


Re: ¿Cómo detectar cambios en el orden del eje X?Y puedes mejorar la trama moviendo la columna "extra" al lado derecho.

Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Column 6", Numeric, "Continuous",
Set Property(
"Axis",
{Show Major Ticks(0), Show Minor Ticks(0), Show Labels(0), Min(0.49),
Max(0.5), Inc(0.2), Minor Ticks(0), Label Row(
{Show Major Labels(0), Show Major Ticks(0), Show Minor Ticks(0)}
)}
),
Formula(
If(:age == 13,
1
,
.
)
);
);
gb = dt << Graph Builder(
Size(712, 621),
Show Control Panel(0),
Variables(X(:age), Y(:weight), Y(:Column 6, Position(1), Side("Right")), Overlay(:sex)),
Elements(Bar(X, Y(2), Overlay(0), Legend(9), Summary Statistic("Median")), Box Plot(X, Y(1), Legend(4))),
SendToReport(
Dispatch({}, "400", ScaleBox, {Legend Model(9, Properties(0, {Fill Color(67), Transparency(0.2)}, Item ID("Median(Column 6)", 1)))}),
Dispatch({}, "Y r title", TextEditBox, {Set Text("")}),
Dispatch({}, "400", LegendBox, {Legend Position({9, [2], 4, [0, 1, -3, -3]})})
)
);
Re: ¿Cómo detectar cambios en el orden del eje X?Espero eliminar el eje del lado derecho. Sin embargo, solo sé cómo modificar manualmente las "Propiedades de visualización", como se muestra en la figura a continuación, y configurar la visibilidad como Oculta. ¿Cómo puedo lograr esta configuración con JSL?

Re: ¿Cómo detectar cambios en el orden del eje X?También me gustaría eliminar automáticamente el marcador de mediana en la configuración de leyenda usando JSL. La imagen a continuación muestra cómo eliminarlo manualmente. ¿Cómo puedo ocultarlo usando JSL?

Re: ¿Cómo detectar cambios en el orden del eje X?¿Cuál es la configuración de tus ejes? Puedes ocultar o eliminar la mayoría de los ejes usándola. La mediana no debería añadir un marcador a menos que uses puntos con el gráfico de barras. Si te refieres al elemento de leyenda y no al marcador, lo más fácil es ocultarlo manualmente y copiar el script.
Re: ¿Cómo detectar cambios en el orden del eje X?
Tengo una pregunta derivada.
Si el gráfico original ya tiene una variable denominada 'Color' y no se puede controlar que el color del gráfico de barras sea rojo, ¿qué debo hacer para solucionarlo y mantener el color rojo?
El siguiente JSL debería abordar estos dos puntos:
1. Agregue color() a las variables:
Variables(X(:edad), Y(:peso), Y(:Columna 6, Posición(1), Lado("Derecho")), Superposición(:sexo),
Color("sexo")
),
2. Cambie el color de relleno() a rojo: Dispatch({}, "400", ScaleBox, {Legend Model(9, Properties(0, { Color de relleno ("Rojo") , Transparency(0.2)}, Item ID("Median(Column 6)", 1)))}),
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Column 6", Numeric, "Continuous",
Set Property(
"Axis",
{Show Major Ticks(0), Show Minor Ticks(0), Show Labels(0), Min(0.49),
Max(0.5), Inc(0.2), Minor Ticks(0), Label Row(
{Show Major Labels(0), Show Major Ticks(0), Show Minor Ticks(0)}
)}
),
Formula(
If(:age == 13,
1
,
.
)
);
);
gb = dt << Graph Builder(
Size(712, 621),
Show Control Panel(0),
Variables(X(:age), Y(:weight), Y(:Column 6, Position(1), Side("Right")), Overlay(:sex),Color("sex")),
Elements(Bar(X, Y(2), Overlay(0), Legend(9), Summary Statistic("Median")), Box Plot(X, Y(1), Legend(4))),
SendToReport(
Dispatch({}, "400", ScaleBox, {Legend Model(9, Properties(0, {Fill Color("Red"), Transparency(0.2)}, Item ID("Median(Column 6)", 1)))}),
Dispatch({}, "Y r title", TextEditBox, {Set Text("")}),
Dispatch({}, "400", LegendBox, {Legend Position({9, [2], 4, [0, 1, -3, -3]})})
)
);
Re: ¿Cómo detectar cambios en el orden del eje X?¿Deshabilitar el color de las variables de los gráficos de barras y cambiar el color?
Re: ¿Cómo detectar cambios en el orden del eje X?Configuré el color de la barra en Personalizar gráfico, pero no se produjeron cambios.
¿O debería configurar el color de la barra en otro panel? No encontré ningún otro lugar para configurar el color de la barra.

Re: ¿Cómo detectar cambios en el orden del eje X?Después de ejecutar el script, deshabilito el color de la barra (derecha)

Luego puedo modificar la Mediana (Columna 6)
