como ordenar el eje x por otro valor de columnaPor ejemplo, tengo 3 columnas:
Nombre Puntuación de edad:
Jason 21 98
Alicia 19 67
Dave 36 89
Juan 28 70
Me gustaría trazar x: Nombre e Y: Puntuación, pero también quiero ordenar el eje X (nombres) por su edad.
¡Muchísimas gracias por la ayuda!
Re: cómo ordenar el eje x por otro valor de columna¡Gracias! ¡Funciona!
Re: cómo ordenar el eje x por otro valor de columnaCreo que la propiedad de la columna "Orden de valor" es lo que necesita. Se puede configurar manualmente usando el diálogo de columna o con jsl (ejemplo a continuación).
// Example Table
New Table("test",
Add Rows(4),
New Column("Name",
Character,
Set Values({"Jason", "Alice", "Dave", "John"})
),
New Column("Age",
Set Values([21, 19, 36, 28])
),
New Column("Score:",
Set Values([98, 67, 89, 70])
)
);
// Plot Score by Age
Oneway(Y(:Name("Score:")), X(:Name));
// Set value ordering to Name after mean Age
Summarize( g = by( :Name ), m = Mean( :Age ) );
:Name << Set Property( "Value Ordering", Eval( g[Rank Index( m )] ) );
// Plot again!
Oneway(Y(:Name("Score:")), X(:Name));Re: cómo ordenar el eje x por otro valor de columnaCuando use Graph Builder, todo lo que debe hacer es arrastrar la variable por la que desea ordenar su eje, al área Ordenar por para el Eje, como se muestra a continuación.

O puede ordenar la tabla de datos por la variable de ordenación (Edad), y luego configurar la Propiedad de la columna, los Niveles de orden de las filas para el Nombre de la columna, y luego el orden utilizado para el eje de la variable del Nombre será el orden en que se encuentran los Nombres en la tabla de datos.
Re: como ordenar el eje x por otro valor de columnaHola tios,
¿Alguna idea de cómo puedo usar la sugerencia de ms por grupo?
para el ejemplo anterior, digamos que me gusta trazar el unidireccional por ganso.
Puedo hacer esto con el generador de gráficos, pero me gusta usar el Cuadro de variabilidad.
Oneway(Y(:Name("Score:")), X(:Name), By(:Name("Gander"));//With Graph Builder
Graph Builder(
Size( 800, 500),
Variables(
X( :name, Order By( :age, Ascending, Order Statistic( "Mean" ) ),
....
Group X( :Gender, N View Levels( 2 ), First View Level( 2 ) ),
...
Re: como ordenar el eje x por otro valor de columnaNo estoy seguro de entender lo que necesita, pero se puede usar el mismo enfoque para el Cuadro de variabilidad. Si se agrupa por una variable adicional, el orden de valores debe aplicarse correctamente dentro de cada grupo.
A continuación, se muestra un ejemplo basado en la tabla de ejemplo de Big Class:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Set value ordering to :name after mean :age
Summarize( g = by( :name ), m = Mean( :age ) );
:Name << Set Property( "Value Ordering", Eval( g[Rank Index( m )] ) );
// Variability chart with names grouped by sex ordered after age
Variability Chart(Y(:height), X(:sex, :name));
Re: como ordenar el eje x por otro valor de columnaLo siento, el ejemplo del grupo Sexo no es tan bueno ya que tiene pocos (o ningún) nombres similares en cada grupo.
aquí está el mismo ejemplo basado en la tabla de semiconductores:
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
// Set value ordering to :name after mean :age
Summarize( g = by( :lot_id ), m = Mean( :PNP1 ) );
:lot_id << Set Property( "Value Ordering", Eval( g[Rank Index( m )] ) );
// Variability chart with names grouped by sex ordered after age
Variability Chart(Y(:NPN1), X(:SITE, :lot_id));resulta con el gráfico de Var a continuación (todos los SITIOS tienen el mismo orden de lot_id), lo cual es incorrecto, creo.
¿Cómo puedo trazar el orden lot_id por PNP1 para cada SITIO en el gráfico Var usando jsl?
Espero haber dejado mi solicitud más clara.
Yo prefiero usar
Variability Chart(Y(:NPN1), X(:SITE), By (:lot_id));
y no
Variability Chart(Y(:NPN1), X(:SITE, :lot_id));
Además, la afirmación de que puedo hacer esto usando el generador de gráficos de mi repetición anterior aquí es incorrecta, lo veo ahora.
Gracias.


Re: como ordenar el eje x por otro valor de columnaCreo que crear una columna concat hará el truco de la siguiente manera
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
dt << New Column("lotID by Site", Character, Formula(char(:SITE)||"_"||:lot_id) );
// Set value ordering to :name after mean :age
Summarize( g = by( :Name("lotID by Site") ), m = Mean( :PNP1 ) );
:Name("lotID by Site") << Set Property( "Value Ordering", Eval( g[Rank Index( m )] ) );
// Variability chart with names grouped by sex ordered after age
Variability Chart(Y(:NPN1), X(:Name("lotID by Site")), by (:SITE));si alguien puede compartir una solución más elegante se lo agradeceré.