¿Cómo puedo cambiar la línea de referencia? no numéricoHola Quiero poner la media estándar de los dos datos en la línea de referencia como se muestra en el siguiente gráfico.
En el siguiente script JMP escribí arbitrariamente la media estándar, 13,2 (22,2+4,2)/2 = 13,2
En realidad los datos que uso son más de dos. (La imagen de abajo es solo un ejemplo)
¿Cómo puedo cambiar el guión?
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ) ;
Graph Builder(
Size( 1056, 825 ),
Variables( Y( :height ), Y( :weight ) ),
Elements(
Position( 1, 1 ),
Points( Y, Legend( 7 ) ),
Caption Box( Y, Legend( 13 ), Summary Statistic( "Std Dev" ) )
),
Elements(
Position( 1, 2 ),
Points( Y, Legend( 8 ) ),
Caption Box( Y, Legend( 14 ), Summary Statistic( "Std Dev" ) )
),
SendToReport(
Dispatch(
{},
"height",
ScaleBox,
{Add Ref Line( 13.3, "Solid", "Medium Dark Red", "Std Dev mean", 2 )}
),
Dispatch(
{},
"weight",
ScaleBox,
{Add Ref Line( 13.3, "Solid", "Medium Dark Red", "Std Dev mean", 2 )}
)
)
);
Re: ¿Cómo puedo cambiar la línea de referencia? no numéricoEste es el método que utilizo para capturar las estadísticas de la columna para un subgrupo determinado, como Edad, y que usted está utilizando.

Aquí está el guión.Simplemente agregue las líneas de referencia adicionales que desee utilizando la misma metodología.
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ) ;
gb = Graph Builder(
Size( 1056, 825 ),
Variables( X( :height ), Group Y( :age ) ),
Elements(
Bar( X, Legend( 17 ) ),
Caption Box( X, Legend( 15 ), Response Axis( "X" ) ),
Caption Box(
X,
Legend( 16 ),
Response Axis( "X" ),
Summary Statistic( "Std Dev" )
)
)
);
Report( gb )[AxisBox( 1 )] << Add Ref Line(
Col Mean( if(:age == 12,:height,.) ) + 4*Col Std Dev( If(:age==12,:height,) ),
"Solid",
"Medium Dark Red",
"Std Dev mean 12",
2
);
Report( gb )[AxisBox( 1 )] << Add Ref Line(
Col Min( if(:age == 12,:height,.) ),
"Solid",
"Medium Dark Red",
"Min 12",
2
);
Report( gb )[AxisBox( 1 )] << Add Ref Line(
Col Max( if(:age == 12,:height,.) ),
"Solid",
"Medium Dark Red",
"Max 12",
2
);
Report( gb )[AxisBox( 1 )] << Add Ref Line(
Col Mean( if(:age == 13,:height,.) ) + 4*Col Std Dev( If(:age==13,:height,) ),
"Solid",
"Medium Dark Red",
"Std Dev mean 13",
2
);
Re: ¿Cómo puedo cambiar la línea de referencia? no numérico@txnelson
¡Gracias por tu amable respuesta!
¡Me queda una última más! pregunta.
perdon por molestarte..
Me gustaría agregar la línea de referencia Max, min (Mean + 4 * Std dev) en todos los grupos (edad).
El problema está debajo del script que no funciona.
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ) ;
gb = Graph Builder(
Size( 1056, 825 ),
Variables( X( :height ), Group Y( :age ) ),
Elements(
Bar( X, Legend( 17 ) ),
Caption Box( X, Legend( 15 ), Response Axis( "X" ) ),
Caption Box(
X,
Legend( 16 ),
Response Axis( "X" ),
Summary Statistic( "Std Dev" )
)
)
);
Report( gb )[AxisBox( 1 )] << Add Ref Line(
Col Mean( :height ) + 4*Col Std Dev( :height ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
y el otro problema, ¿cómo puedo extraer Max, Min (Mean + 4 * Std dev) todo el grupo (edad)?
Me gustaría aplicar la línea de referencia Max (Mean + 4 * Std dev), Min (Mean + 4 * Std dev) todos los grupos son iguales.
Creo que puedo usar la función Max(), Min()...
Re: ¿Cómo puedo cambiar la línea de referencia? no numéricoVeo el problema que estás señalando.Parece que aunque el árbol de visualización indica que hay 4 ejes separados, JMP en realidad los trata como solo 2 ejes.Por lo tanto, lo que hay que hacer para acercarse lo más posible a lo que desea es que se puedan tomar los datos de altura y peso en 4 columnas, según el valor de sexo, y luego trazar las 4 variables por separado.

Aquí está el JSL
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ) ;
dtSplit = dt << Split(
Split By( :sex ),
Split( :height, :weight ),
Remaining Columns( Drop All ),
Sort by Column Property
);
gb = dtSplit << Graph Builder(
Variables( Y( :height F ), Y( :weight F ), Y( :height M ), Y( :weight M ) ),
Elements(
Position( 1, 1 ),
Points( Y, Legend( 11 ) ),
Caption Box( Y, Legend( 15 ), Summary Statistic( "Std Dev" ) )
),
Elements(
Position( 1, 2 ),
Points( Y, Legend( 12 ) ),
Caption Box( Y, Legend( 16 ), Summary Statistic( "Std Dev" ) )
),
Elements(
Position( 1, 3 ),
Caption Box( Y, Legend( 17 ), Summary Statistic( "Std Dev" ) ),
Points( Y, Legend( 18 ) )
),
Elements(
Position( 1, 4 ),
Points( Y, Legend( 14 ) ),
Caption Box( Y, Legend( 19 ), Summary Statistic( "Std Err" ) )
),
SendToReport(
Dispatch(
{},
"weight F",
ScaleBox,
{Min( 49.5141101773061 ), Max( 150.319351489306 ), Inc( 20 ),
Minor Ticks( 0 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
18,
Properties( 0, {Line Color( 21 )}, Item ID( "height M", 1 ) )
), Legend Model(
14,
Properties( 0, {Line Color( 19 )}, Item ID( "weight M", 1 ) )
)}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {11, [0], 12, [1], 18, [3], 14, [2]} ),
Position( {0, 1, 3, 2} )}
)
)
);
Report( gb )[AxisBox( 2 )] << Add Ref Line(
Col Std Dev( :Height F ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 3 )] << Add Ref Line(
Col Std Dev( :Weight F),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 4 )] << Add Ref Line(
Col Std Dev( :Height M ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 5 )] << Add Ref Line(
Col Std Dev( :Weight M ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);Re: ¿Cómo puedo cambiar la línea de referencia? no numérico@txnelson
Gracias por su respuesta.
En el siguiente script, todos los valores STD del Grupo F se escriben como valores STD del Grupo M.
¿Cómo podemos separarlos en dos grupos?
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ) ;
gb = Graph Builder(
Size( 1056, 825 ),
Variables( Y( :height ), Y( :weight ), Group Y( :sex ) ),
Elements(
Position( 1, 1 ),
Points( Y, Legend( 7 ) ),
Caption Box( Y, Legend( 13 ), Summary Statistic( "Std Dev" ) )
),
Elements(
Position( 1, 2 ),
Points( Y, Legend( 8 ) ),
Caption Box( Y, Legend( 14 ), Summary Statistic( "Std Dev" ) )
)
);
Report( gb )[AxisBox( 2 )] << Add Ref Line(
Col Std Dev( If( :sex == "F", :Height, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 3 )] << Add Ref Line(
Col Std Dev( If( :sex == "F", :Height, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 4 )] << Add Ref Line(
Col Std Dev( If( :sex == "M", :Height, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 5 )] << Add Ref Line(
Col Std Dev( If( :sex == "M", :Weight, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Re: ¿Cómo puedo cambiar la línea de referencia? no numéricoComo se puede ver en mi respuesta anterior, para agregar una línea de referencia, todo lo que tiene que hacer es pasar un mensaje << Agregar línea de referencia al eje al que desea agregar la línea de referencia:
Report( gb )[AxisBox( 2 )] << Add Ref Line( Col Std Dev( :Height ), "Solid", "Medium Dark Red", "Std Dev mean", 2 );
Para saber a qué eje apuntar correctamente, es necesario consultar la estructura de árbol de la salida del Generador de gráficos.Para hacer esto, haga clic derecho en el triángulo gris al lado del encabezado Graph Builder y seleccione
Editar==>Mostrar estructura de árbol


Luego puede alinear la ventana de gráfico con la ventana de estructura de árbol y hacer clic en el elemento de la ventana de gráfico cuya estructura de árbol desea ver y JMP se moverá a esa estructura en la ventana de estructura de árbol.

Como se puede ver aquí, el Eje para la columna Altura, para Sex=="F" es AxisBox(2)
Si hace clic en cada uno de los ejes en cuestión, verá a qué cuadro de eje apuntar para agregar una línea de referencia.El último eje de la pregunta, columna Peso, para Sex=="M" es:

Ahora todo lo que hay que hacer es expandir el JSL para crear las líneas de referencia para los 4 ejes y calcular en cada uno de los mensajes Agregar línea de referencia, el valor correcto para la ubicación de la línea de referencia.Aquí están las 4 líneas de código Agregar línea de referencia:
Report( gb )[AxisBox( 3 )] << Add Ref Line(
Col Std Dev( If( :sex == "F", :Weight, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 2 )] << Add Ref Line(
Col Std Dev( If( :sex == "M", :Height, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 3 )] << Add Ref Line(
Col Std Dev( If( :sex == "M", :Weight, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Tenga en cuenta que en este caso, la columna Sexo tuvo que tenerse en cuenta para el cálculo de la Desviación estándar, junto con la columna de medición.
Re: ¿Cómo puedo cambiar la línea de referencia? no numérico@txnelson ¡Gracias por su pronta respuesta!
Tengo una pregunta más.
Si los datos se agruparon por sexo como en la imagen de abajo, ¿cómo puedo manejarlos?
Re: ¿Cómo puedo cambiar la línea de referencia? no numéricoAquí hay una modificación simple a su script que dibuja una línea de referencia en el valor de Std Dev para cada columna (:Altura,:Peso)
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ) ;
gb=Graph Builder(
Size( 1056, 825 ),
Variables( Y( :height ), Y( :weight ) ),
Elements(
Position( 1, 1 ),
Points( Y, Legend( 7 ) ),
Caption Box( Y, Legend( 13 ), Summary Statistic( "Std Dev" ) )
),
Elements(
Position( 1, 2 ),
Points( Y, Legend( 8 ) ),
Caption Box( Y, Legend( 14 ), Summary Statistic( "Std Dev" ) )
)
);
report(gb)[AxisBox(2)]<<ADD ref="" line=""></ADD>