L'idea principale alla base della nuova impostazione degli assi Y paralleli è quella di generare sovrapposizioni di grafici con più assi sulla sinistra, come mostrato in Novità in Graph Builder per JMP 19
Lo stesso principio si applica se alcuni assi si trovano sulla destra del grafico, ad esempio per 1 asse a sinistra e 1 asse a destra:
Open( "$SAMPLE_DATA/Functional Data/Anodic Bond.jmp" );
Graph Builder(
// Parallel Axes( "Y Only" ),
Variables( X( :Order ), Y( :Piston Force ), Y( :Charge, Position( 1 ), Side( "Right" ) ) ),
Elements( Line( X, Y( 1 ) ), Line( X, Y( 2 ) ) ),
Local Data Filter(
Add Filter(
columns( :Wafer Id ),
Where( :Wafer Id == 11 )
)
)
);
uncomment Parallel Axes( "Y Only" ) and the new functionality will help you to get the right colors:

più divertente: valori multipli sul lato sinistro e destro:

Graph Builder(
Parallel Axes( "Y Only" ),
Variables(
X( :Order ),
Y( :Flow ),
Y( :Voltage, Position( 1 ), Side( "Right" ) ),
Y( :Piston Force ),
Y( :Charge, Position( 2 ), Side( "Right" ) )
),
Elements( Position( 1, 1 ), Line( X, Y( 1 ) ), Line( X, Y( 2 ) ) ),
Elements( Position( 1, 2 ), Line( X, Y( 1 ) ), Line( X, Y( 2 ) ) ),
Local Data Filter(
Add Filter(
columns( :Wafer Id ),
Where( :Wafer Id == 11 ),
Display( :Wafer Id, N Items( 15 ), Find( Set Text( "" ) ) )
)
)
);
remove the Parallel Axes( "Y Only" ) to see how the graph is generated:
note that the different traces have to be in separate graphs at first (e.g. Fluire and Forza del pistone fo the left side) -
rather than being merged into the same graph.
The same logica holds for "Tutto parallel axes on the left":
Non unire le tracce nello stesso grafico da soli; prima devono trovarsi in grafici diversi, uno sopra l'altro.
As soon as the user activates Parallel Axes , it's JMP who will merge the traces - e dividere gli assi .
Modalità esperto: Let's see what happens when a user merges 2 traces into the same graph (and adds some other traces on top) ...
After activating Parallel Axes, the 2 merged traces will uselo stesso asse while the other traces get their own axis.
I hope this explanation helps you to understand the general logic.

<BR />"Y Only"?
so, there will be"Solo X" and "X e Y" as well ? - but maybe in a next version of JMP ...
side discussion of Riunione del gruppo utenti DACH 2025 - Impressioni e risorse / JMP19 -- Lista dei desideri JMP
"Solo X"
Ecco un desiderio nella lista dei desideri. Forse non esattamente "Assi X paralleli" *) - ma strettamente collegato ad esso
Asse x secondario in Graph Builder di @Morten

*) l'asse x secondario potrebbe essere posizionato sul lato opposto del grafico.
Indipendentemente dalla posizione dell'asse X secondario, posso pensare a 2 casi applicativi distinti per l'asse X secondario:
- 2 grafici sovrapposti, utilizzando assi x individuali/separati
(analogo al comportamento esistente per i diversi assi Y)
- un singolo grafico con un collegamento fisso, "fisico" / matematico tra le etichette del primo e del secondario asse *)
per esempio
- 1/T [K] + T [°C]
- lunghezza d'onda in nm + lunghezza d'onda in 1/cm
- deviazione in % + fattori di sigma:

*) Con la funzionalità Assi Paralleli ("Solo X") disponibile, l'utente potrà creare gli assi X collegati aggiungendo un asse secondario senza grafico e quindi regolando manualmente la scala e l'offset in modo che corrispondano ai valori di entrambi gli assi. Un collegamento matematicamente corretto/fisso sarà più professionale, ma anche molto più complicato da definire, soprattutto per collegamenti complessi (= i casi applicativi più interessanti) come X e 1/X e percentuali e fattori di sigma. Immagino che la maggior parte degli utenti sarà soddisfatta della prima opzione (manuale).
modificare:
**) Con gli assi paralleli (" solo Y ") disponibili in JMP19, l'utente può creare un grafico fittizio con assi X collegati:
... creando un grafico con assi Y "collegati" manualmente e ruotando il grafico di 90° (vedi sotto)
***) Con JMP19 e versioni precedenti, l'utente può creare un grafico falso con assi X collegati: superiore e inferiore
creando un grafico con gli assi Y sinistro e destro "collegati" manualmente e ruotando il grafico di 90° (vedi sotto)
"X e Y"?
-> meglio NON averlo ; )
Ricordo una riunione in cui un collega usò un grafico del genere: è davvero difficile per il cervello umano combinare le dimensioni giuste!
Questo approccio potrebbe far risparmiare spazio nella presentazione, ma fa sprecare tempo alla riunione in discussioni sugli assi.
Questo è uno script giocattolo con cui giocare con le seguenti funzionalità:
Open( "$SAMPLE_DATA/Reliability/GaAs Laser.jmp" );
gb = Graph Builder(
Size( 542, 598 ),
Show Legend( 0 ),
Parallel Axes( "Y Only" ),
Graph Spacing( 4 ),
Variables( X( :Current ), Y( :Hours, Side( "Right" ) ), Y( :Hours, Side( "Right" ) ), Overlay( :Batch ) ),
Elements( Position( 1, 1 ), Points( X, Y, Legend( 45 ) ) ),
Elements( Position( 1, 2 ), Smoother( X, Y, Legend( 44 ) ) ),
SendToReport(
Dispatch( {}, {:Current}, ScaleBox, {Label Row( Label Orientation( "Vertical" ) )} ),
Dispatch( {}, "", ScaleBox,
{Label Row(
{Automatic Tick Marks( 0 ), Show Major Grid( 0 ), Show Major Labels( 0 ), Show Major Ticks( 0 ),
Show Minor Ticks( 0 )}
)}
),
Dispatch( {}, "", ScaleBox( 2 ),
{Label Row(
{Automatic Tick Marks( 0 ), Show Major Grid( 0 ), Show Major Labels( 0 ), Show Major Ticks( 0 ),
Show Minor Ticks( 0 )}
)}
),
Dispatch( {}, {:Hours}, ScaleBox,
{Scale( "Log" ), Min( 10 ), Max( 10000 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 24, "Solid", "Black", "day", 1 ), Add Ref Line( 168, "Solid", "Black", "week", 1 ),
Add Ref Line( 720, "Solid", "Black", "month", 1 ), Add Ref Line(
2160, "Solid", "Black", "quarter", 1
), Label Row(
{Label Orientation( "Vertical" ), Show Major Grid( 0 ), Show Major Labels( 0 ),
Show Major Ticks( 0 ), Show Minor Labels( 0 ), Show Minor Ticks( 0 )}
)}
),
Dispatch( {}, {:Hours}, ScaleBox( 2 ),
{Scale( "Log" ), Min( 10 ), Max( 10000 ), Minor Ticks( 1 ),
Label Row( {Label Orientation( "Vertical" ), Show Minor Grid( 1 ), Show Minor Labels( 0 )} )}
),
Dispatch( {}, {:Hours, "Y title"}, TextEditBox, {Rotate Text( "Left" )} ),
Dispatch( {}, {:Hours, "Y 1 title"}, TextEditBox, {Rotate Text( "Left" )} )
)
);
report(gb)[GraphBuilderBox(1)] << save picture( "$TEMP/graph.png", "png" );
img = Open( "$TEMP/graph.png", "png" );
img << rotate(90) << scale(0.5);
New window("graph", img)
Crea un grafico con un asse "X" secondario in Graph Builder :

- ... in realtà, non è un vero asse "X" - è un asse Y e il grafico è ruotato
(si noti l'orientamento errato dell'etichetta dell'asse Y)
- why is the x axis blue?
This is a conflict between "Parallel Axes" and Overlay.
why just parts of the axes? I don't know.
In realtà è meglio disattivare gli assi paralleli e utilizzare le etichette sui lati opposti del grafico.
Questa modalità mi piace molto: se fosse disponibile per l'asse X, la userei molto spesso.

gb = Graph Builder(
Size( 530, 473 ),
Graph Spacing( 4 ),
Show Legend( 0 ),
Variables(
X( :Current ),
Y( :Hours ),
Y( :Hours, Position( 1 ), Side( "Right" ) ),
Group X( :Batch, Show Title( 0 ) )
),
Elements( Smoother( X, Y( 1 ), Legend( 40 ) ), Points( X, Y( 2 ), Legend( 41 ) ) ),
SendToReport(
Dispatch( {}, {:Hours}, ScaleBox,
{Scale( "Log" ), Min( 10 ), Max( 10000 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 24, "Solid", "Black", "day", 1 ), Add Ref Line( 168, "Solid", "Black", "week", 1 ),
Add Ref Line( 720, "Solid", "Black", "month", 1 ), Add Ref Line(
2160, "Solid", "Black", "quarter", 1
), Label Row(
{Label Orientation( "Vertical" ), Show Major Grid( 0 ), Show Major Labels( 0 ),
Show Major Ticks( 0 ), Show Minor Labels( 0 ), Show Minor Ticks( 0 )}
)}
),
Dispatch( {}, {:Hours}, ScaleBox( 2 ),
{Scale( "Log" ), Min( 10 ), Max( 10000 ), Minor Ticks( 1 ),
Label Row( {Label Orientation( "Vertical" ), Show Minor Grid( 1 ), Show Minor Labels( 0 )} )}
),
Dispatch( {}, {:Hours, "Y title"}, TextEditBox, {Set Text( "" )} ),
Dispatch( {}, {:Hours, "Y r title"}, TextEditBox, {Rotate Text( "Left" )} )
)
);
Si potrebbe sostenere che per questa "modalità etichetta" è molto più semplice usare "lato opposto" nel menu della linea di riferimento per ottenere le etichette lì:

Ma tutti odiano i "cloni" che compaiono con questa modalità:

@hogi wrote:
... conflict between "Parallel Axes" and Overlay.
Questo conflitto è presente anche nella modalità attuale e riduce quindi il numero di possibili casi di applicazione.
Con gli assi paralleli attivati, quando l'utente attiva anche la sovrapposizione, la sovrapposizione controlla il colore e i colori di tutti i parametri vengono sincronizzati (visibili tramite lo stesso colore delle etichette degli assi).

Open( "$SAMPLE_DATA/Functional Data/Anodic Bond.jmp" );
Graph Builder(
Size( 957, 548 ),
Parallel Axes( "Y Only" ),
Graph Spacing( 4 ),
Variables( X( :Order ), Y( :Flow ), Y( :Voltage ), Overlay( :Wafer Id ) ),
Elements( Position( 1, 1 ), Line( X, Y ) ),
Elements( Position( 1, 2 ), Line( X, Y) ),
Local Data Filter(
Add Filter(
columns( :Wafer Id ),
Where( :Wafer Id == {8, 9, 10, 11} ),
Display( :Wafer Id, N Items( 15 ), Find( Set Text( "" ) ) )
)
)
);
il trucco: usa la codifica sovrapposta = stile,

e assegnare colori diversi a tutte le curve per lo stesso parametro:

Poiché questa operazione deve essere eseguita manualmente, potrebbe richiedere un'eternità. Un trucco semplice: utilizzare la barra degli strumenti di Graph Builder o il controllo remoto di Graph Builder dal marketplace:
Another Trick: open the legend menu, select a bock of legend entries and apply the color via right click.
[when you try the same in the legend itself, the new color will be assigned to all parameters]