È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?Ad esempio, dopo aver disegnato il grafico in questo modo, le larghezze di questi due assi x sono impostate in modo diverso.
Grazie!
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>Automazione e scripting</LINGO-LABEL><LINGO-LABEL>Finestre</LINGO-LABEL></LINGO-LABS>
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?puoi dividere la colonna dell'altezza in due parti:

... e genera 2 grafici adiacenti:
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 )} )
)
);
purtroppo il colore della trama è inaspettato: stesso colore per entrambi i sessi?!
Sembra che il colore venga preso dalle righe senza valori nella colonna utilizzata per l'asse di risposta.
-> scoperta interessante/importante!

R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?Grazie Esperti!
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?Quindi, in aggiunta, dividi il colore o l'asse dell'età:

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 )} )
);
Grazie alla possibilità di ridimensionare gli assi x in modo indipendente, si ottiene anche il "dovere" di disporre di intervalli significativi (= stesso intervallo) per le 2 scale di colori.
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?Un modo molto migliore: tramite la pagina
- assi x indipendenti
- synchronous y axis scale - via Link Page Axes( "Y Only" ),
- scala di colori sincrona
Spero che non ti dispiaccia il piccolo spazio tra le trame

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 ) ) )
);
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?Questa larghezza è la stessa.
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?Oh, sì, hai ragione. L' intervallo può essere regolato individualmente, ma la larghezza è di nuovo forzata a rimanere invariata.
Allora temo che ti serva un codice lungo.
vediamo cosa suggeriscono gli altri utenti...
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?Grazie Esperti!
Sto usando questo script.
Come possiamo ottenere questo sottoinsieme eseguendo uno screenshot, passando il mouse sopra l'immagine o cliccandoci sopra?

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 )} )
));
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?Ho provato questo codice e ci sono riuscito solo cliccando sull'immagine "F" a sinistra.
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>Grazie Esperti!</P>
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?Nell'immagine nel post N-2 sembra che potresti cliccare anche sulla barra "M" a destra?
Per comprendere meglio la questione, potresti aggiungere qualche commento su cosa è possibile e cosa non lo è?
Quale versione di JMP?
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?Dopo averci ripensato (al mio post originale):
Sconsiglio di creare un grafico di questo tipo: è molto pericoloso.
Ho dovuto usare Unito per comprimere le etichette sull'asse Y. *)

Altrimenti Graph Builder traccia il grafico decompresso:

UN)
L'unione porta alle etichette sbagliate sull'asse Y: 1,2,3... invece di 12,13,14...
b) È sistematico, ma pericoloso:
Per vedere il problema, basta generare il grafico con una voce mancante (ad esempio NESSUNA donna, 15 anni):

Poiché "Unisci" sostituisce le etichette con 1, 2, 3... questo fa sì che le barre per le donne si spostino e le disallineino rispetto alle barre per gli uomini (!)
L'argomento è interessante, illustra come JMP gestisce i dati con voci mancanti.
A proposito, sul mio sistema l'impostazione predefinita è

Quindi, se il tuo grafico è vuoto:

vai al menu del triangolo rosso e attiva l'opzione.
Sotto la riga:
Disattivando l'opzione Includi categorie mancanti (e con tutti i valori mancanti che abbiamo aggiunto!), non c'è nulla da tracciare.
(Graph Builder rimuove la riga anche dai sottotracciati in cui la colonna con il valore mancante non viene utilizzata).
Se è abilitata l'opzione Includi categorie mancanti , Graph Builder tratta i valori mancanti come un livello separato , aggiungendo così una suddivisione indesiderata.
Per eliminare la divisione, ho usato l'opzione "Unisci", che "ignora" le voci effettive e sostituisce i singoli valori con il loro rango. Questo è pericoloso se gli stessi valori hanno ranghi diversi in sottoinsiemi diversi.
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?con le due opzioni:
@hogi ha scritto:
inoltre, dividi il colore o l'asse dell'età:
meglio dimenticare il secondo e usare il primo:

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 ) ) ),
)
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?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>
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?preferisci l'approccio basato sull'età?
Quindi forse si potrebbe aggiungere un controllo per verificare che entrambi i sottoinsiemi contengano esattamente le stesse fasce d'età.
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?Questo è dato dall'intelligenza artificiale. Può funzionare, ma non so ancora come ottenere la posizione del numero di colonna del grafico su cui ho cliccato.
Potresti darmi un codice, esperto?Grazie mille!
R: È possibile impostare separatamente la larghezza dell'asse X dei grafici raggruppati?Caption(Char(dt<
<GET selected="" rows=""></GET>