La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?Par exemple, après avoir dessiné le graphique comme ceci, les largeurs de ces deux axes x sont définies pour être différentes.
Merci!
dt=Open("$SAMPLE_DATA/Big Class.jmp");
d2=dt<<SUMMARY></SUMMARY>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><span class="lia-inline-image-display-wrapper" image-alt="2025-05-01_11-07-14.png" style="width: 729px;"><img src="https://us.v-cdn.net/6038925/uploads/images/75382i47576C683FBC176C/2025-05-01_11-07-14.png" role="button" title="2025-05-01_11-07-14.png" alt="2025-05-01_11-07-14.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></P><LINGO-LABS id="lingo-labs-871238" slang="en-US" mode="CREATE"><LINGO-LABEL>Automatisation et scripts</LINGO-LABEL><LINGO-LABEL>Windows</LINGO-LABEL></LINGO-LABS>
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?vous pouvez diviser la colonne de hauteur en deux parties :

... et générer 2 parcelles adjacentes :
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Summary(
Group( :age, :sex ),
Sum( :height ),
statistics column name format( "column" )
);
New Column( "height M", Formula( If( :sex == "M", :height ) ));
New Column( "height F", Formula( If( :sex == "F", :height ) ));
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height F ), X( :height M ), Y( :age ), Color( :N Rows ) ),
Relative Sizes( "X", [360 237] ),
Elements( Position( 1, 1 ), Bar( X, Y ) ),
Elements( Position( 2, 1 ), Bar( X, Y ) ),
SendToReport(
Dispatch( {}, {:height F}, ScaleBox, {Max( 800 )} )
)
);
malheureusement, la couleur dans l'intrigue est inattendue : même couleur pour les deux sexes ?!
il semble que la couleur soit extraite des lignes sans valeurs dans la colonne qui est utilisée pour l'axe de réponse.
-> découverte intéressante / importante !

Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?Merci les experts !
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?Donc, en plus, soit la couleur divisée, soit l'axe des âges :

Graph Builder(
Transform Column( "age_F", Nominal, Formula( If( :sex == "F", :age ) ) ),
Transform Column( "age_M", Nominal, Formula( If( :sex == "M", :age ) ) ),
Size( 433, 323 ),
Show Control Panel( 0 ),
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables(
X( :height F ),
X( :height M ),
Y( :age_M, Combine( "Merged" ) ),
Y( :age_F, Position( 1 ), Combine( "Merged" ) ),
Color( :N Rows )
),
Relative Sizes( "X", [360 237] ),
Elements( Position( 1, 1 ), Bar( X, Y( 2 )) ),
Elements( Position( 2, 1 ), Bar( X, Y( 1 ) ) ),
SendToReport(
Dispatch( {}, {:height F}, ScaleBox, {Max( 800 ), Inc( 100 ), Minor Ticks( 0 )} )
);
Avec la possibilité de mettre à l'échelle les axes x indépendamment, vous obtenez également le « devoir » de définir des plages significatives (= même plage) pour les 2 échelles de couleurs.
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?Une bien meilleure façon : via la page
- axes x indépendants
- synchronous y axis scale - via Link Page Axes( "Y Only" ),
- échelle de couleurs synchrone
j'espère que le petit écart entre les intrigues ne vous dérange pas

Graph Builder(
Size( 527, 455 ),
Show Control Panel( 0 ),
Link Page Axes( "Y Only" ),
Replicate Linked Page Axes( 0 ),
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :age ), Page( :sex, Levels per Row( 2 ) ), Color( :N Rows ) ),
Elements( Bar( X, Y, Legend( 7 ) ) )
);
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?Cette largeur est la même.
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?Ah oui, vous avez raison. La portée peut être ajustée individuellement, mais la largeur doit rester la même.
Alors je crains que vous ayez besoin du code long.
voyons ce que les autres utilisateurs suggèrent...
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?Merci les experts !
J'utilise ce script.
Comment pouvons-nous obtenir ce sous-ensemble en suivant l'étape de prise de capture d'écran, en survolant le graphique ou en cliquant dessus ?

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Summary(
Group( :age, :sex ),
Sum( :height ),
statistics column name format( "column" )
);
New Column( "height M", Formula( If( :sex == "M", :height ) ));
New Column( "height F", Formula( If( :sex == "F", :height ) ));
Graph Builder(
Transform Column( "age_F", Nominal, Formula( If( :sex == "F", :age ) ) ),
Transform Column( "age_M", Nominal, Formula( If( :sex == "M", :age ) ) ),
Size( 433, 323 ),
Show Control Panel( 0 ),
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables(
X( :height F ),
X( :height M ),
Y( :age_M, Combine( "Merged" ) ),
Y( :age_F, Position( 1 ), Combine( "Merged" ) ),
Color( :N Rows )
),
Relative Sizes( "X", [360 237] ),
Elements( Position( 1, 1 ), Bar( X, Y( 2 )) ),
Elements( Position( 2, 1 ), Bar( X, Y( 1 ) ) ),
SendToReport(
Dispatch( {}, {:height F}, ScaleBox, {Max( 800 ), Inc( 100 ), Minor Ticks( 0 )} )
));
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?J'ai essayé un tel code et je n'ai réussi qu'en cliquant sur l'image "F" à gauche.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
d1=dt << Summary(
Group( :age, :sex ),
Sum( :height ),
statistics column name format( "column" )
);
New Column( "height M", Formula( If( :sex == "M", :height ) ));
New Column( "height F", Formula( If( :sex == "F", :height ) ));
p2=d1<< Graph Builder(
Transform Column( "age_F", Nominal, Formula( If( :sex == "F", :age ) ) ),
Transform Column( "age_M", Nominal, Formula( If( :sex == "M", :age ) ) ),
Size( 433, 323 ),
Show Control Panel( 0 ),
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables(
X( :height F ),
X( :height M ),
Y( :age_M, Combine( "Merged" ) ),
Y( :age_F, Position( 1 ), Combine( "Merged" ) ),
Color( :N Rows )
),
Relative Sizes( "X", [360 237] ),
Elements( Position( 1, 1 ), Bar( X, Y( 2 )) ),
Elements( Position( 2, 1 ), Bar( X, Y( 1 ) ) ),
SendToReport(
Dispatch( {}, {:height F}, ScaleBox, {Max( 800 ), Inc( 100 ), Minor Ticks( 0 )} )
));
frame=(p2<
<REPORT></REPORT>
<P><SPAN><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2025-05-07_10-58-54.png" style="width: 580px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-07_10-58-54.png" style="width: 580px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-07_10-58-54.png" style="width: 580px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-07_10-58-54.png" style="width: 580px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-07_10-58-54.png" style="width: 580px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-07_10-58-54.png" style="width: 580px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-07_10-58-54.png" style="width: 580px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-07_10-58-54.png" style="width: 580px;"><span class="lia-inline-image-display-wrapper" image-alt="2025-05-07_10-58-54.png" style="width: 580px;"><img src="https://us.v-cdn.net/6038925/uploads/images/75545i98906BC556EE670B/2025-05-07_10-58-54.png" role="button" title="2025-05-07_10-58-54.png" alt="2025-05-07_10-58-54.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></P> <P>Merci les experts !</P>
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?Dans l'image du post N-2, il semble que vous puissiez également cliquer sur la barre "M" à droite ?
Pour mieux comprendre le problème, pourriez-vous ajouter quelques commentaires sur ce qui est possible et ce qui ne l'est pas ?
Quelle version de JMP ?
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?Après avoir réfléchi à nouveau (à propos de mon message original) :
Je ne recommande pas de créer un graphique comme celui-ci - très dangereux.
J'ai dû utiliser Fusionné pour compresser les étiquettes sur l'axe Y. *)

Sinon, Graph Builder le trace décompressé :

un)
La fusion conduit à des étiquettes erronées sur l'axe Y : 1,2,3... au lieu de 12,13,14...
b) C'est systématique, mais dangereux :
Pour voir le problème, générez simplement le tracé avec une entrée manquante (par exemple, AUCUNE femme, 15 ans) :

Comme « Fusionner » remplace les étiquettes par 1, 2, 3… cela fait que les barres pour les femmes se décalent et les désalignent par rapport aux barres pour les hommes (!)
le sujet est intéressant, il illustre comment JMP gère les données avec des entrées manquantes.
Au fait, sur mon système, le paramètre par défaut est

Donc, si votre graphique est vide :

allez dans le menu triangle rouge et activez l'option.
Sous la ligne :
Avec l'option Inclure les catégories manquantes désactivée (et avec toutes les valeurs manquantes que nous avons ajoutées !), il n'y a rien à tracer.
(Graph Builder supprime également la ligne des sous-graphiques où la colonne avec la valeur manquante n'est pas utilisée).
Lorsque l'option Inclure les catégories manquantes est activée, Graph Builder traite les valeurs manquantes comme un niveau distinct et ajoute ainsi une division indésirable.
Pour supprimer la division, j'ai utilisé l'option « Fusionner », qui « ignore » les entrées réelles et remplace les valeurs individuelles par leur rang. Cela est dangereux si les mêmes valeurs ont des rangs différents dans différents sous-ensembles.
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?avec les deux options :
@hogi a écrit :
en plus, soit la couleur divisée, soit l'axe des âges :
mieux vaut oublier le deuxième et utiliser le premier :

Graph Builder(
Transform Column( "N_M", Formula( If( :sex == "M", :N Rows ) ) ),
Transform Column( "N_F", Formula( If( :sex == "F", :N Rows ) ) ),
Variables( X( :height F ), X( :height M ), Y( :age ), Color( :N_F ), Color( :N_M ) ),
Relative Sizes( "X", [360 237] ),
Elements( Position( 1, 1 ), Bar( X, Y, Color( 1 ), Legend( 1 ) ) ),
Elements( Position( 2, 1 ), Bar( X, Y, Color( 2 ), Legend( 2 ) ) ),
)
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
d1=dt << Summary(
Group( :age, :sex ),
Sum( :height ),
statistics column name format( "column" )
);
New Column( "height M", Formula( If( :sex == "M", :height ) ));
New Column( "height F", Formula( If( :sex == "F", :height ) ));
p2=d1<< Graph Builder(
Transform Column( "age_F", Nominal, Formula( If( :sex == "F", :age ) ) ),
Transform Column( "age_M", Nominal, Formula( If( :sex == "M", :age ) ) ),
Size( 433, 323 ),
Show Control Panel( 0 ),
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables(
X( :height F ),
X( :height M ),
Y( :age_M, Combine( "Merged" ) ),
Y( :age_F, Position( 1 ), Combine( "Merged" ) ),
Color( :N Rows )
),
Relative Sizes( "X", [360 237] ),
Elements( Position( 1, 1 ), Bar( X, Y( 2 )) ),
Elements( Position( 2, 1 ), Bar( X, Y( 1 ) ) ),
SendToReport(
Dispatch( {}, {:height F}, ScaleBox, {Max( 800 ), Inc( 100 ), Minor Ticks( 0 )} )
));
rpt = p2 << Report;
frames = rpt << XPath( "//FrameBox" );
For( i = 1, i <= N Items( frames ), i++,
frames[i] << Set Graphlet(
Picture(
try(Close(d2,nosave));
current data table(dt);
d2=dt<
<SUBSET></SUBSET>
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?vous préférez l'approche par l'âge ?
Il faudrait peut-être ensuite vérifier que les deux sous-ensembles contiennent exactement les mêmes tranches d’âge.
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?Ceci est fourni par l'IA. Il peut fonctionner, mais je ne sais toujours pas comment obtenir la position du numéro de colonne du graphique sur lequel j'ai cliqué.
Pourriez-vous me donner un code, s'il vous plaît, expert ?Merci beaucoup!
Re : La largeur de l'axe X des graphiques groupés peut-elle être définie séparément ?Caption(Char(dt<
<GET selected="" rows=""></GET>