comment trier l'axe x par une autre valeur de colonnePar exemple, j'ai 3 colonnes :
Nom Âge Score :
Jason 21 98
Alice 19 67
Dave 36 89
Jean 28 70
Je voudrais tracer x : Nom et Y : Score, mais je veux aussi trier l'axe X (noms) par leur âge.
Merci beaucoup pour l'aide!
Re : comment trier l'axe des x par une autre valeur de colonneJe pense que la création d'une colonne concat fera l'affaire comme suit
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 quelqu'un peut partager une solution plus élégante, je l'apprécierai.
Re : comment trier l'axe des x par une autre valeur de colonneDésolé, l'exemple du groupe Sexe n'est pas très bon car il a peu (ou pas) de noms similaires sur chaque groupe.
voici le même exemple basé sur la table des semi-conducteurs :
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));il en résulte le graphique Var ci-dessous (tous les SITES ont le même ordre lot_id) - ce qui est faux, je crois.
Comment puis-je tracer l'ordre lot_id par PNP1 pour chaque SITE dans le graphique Var en utilisant jsl.
J'espère avoir été plus clair dans ma demande.
je préfère utiliser
Variability Chart(Y(:NPN1), X(:SITE), By (:lot_id));
et pas
Variability Chart(Y(:NPN1), X(:SITE, :lot_id));
De plus, l'affirmation selon laquelle je peux le faire en utilisant le générateur de graphes de ma précédente relecture ici est fausse, je le vois maintenant.
Merci.


Re : comment trier l'axe des x par une autre valeur de colonneJe ne suis pas sûr de comprendre ce dont vous avez besoin, mais la même approche peut être utilisée pour le tableau de variabilité. S'ils sont regroupés par une variable supplémentaire, l'ordre des valeurs doit être correctement appliqué dans chaque groupe.
Voici un exemple basé sur l'exemple de table 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 : comment trier l'axe des x par une autre valeur de colonneSalut les gars,
Une idée de la façon dont je peux utiliser la suggestion ms par groupe ?
pour l'exemple ci-dessus, disons que j'aime tracer le sens unique par coup d'œil.
Je peux le faire avec le générateur de graphiques, mais j'aime utiliser le tableau de variabilité.
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 : comment trier l'axe des x par une autre valeur de colonneMerci! Ça marche!
Re : comment trier l'axe des x par une autre valeur de colonneJe pense que la propriété de colonne "Value Ordering" est ce dont vous avez besoin. Il peut être défini manuellement à l'aide de la boîte de dialogue de colonne ou avec jsl (exemple ci-dessous).
// 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 : comment trier l'axe des x par une autre valeur de colonneLorsque vous utilisez Graph Builder, tout ce qui doit être fait est de faire glisser la variable par laquelle vous souhaitez ordonner votre axe, vers la zone Trier par pour l'axe, comme indiqué ci-dessous

Ou vous pouvez trier la table de données par la variable de tri (Age), puis définir la propriété de la colonne, les niveaux d'ordre des lignes pour le nom de la colonne, puis l'ordre utilisé pour l'axe de la variable Nom sera l'ordre dans lequel les noms sont trouvés dans le tableau de données.