L'idée principale derrière le nouveau paramètre d'axes Y parallèles est de générer des superpositions de graphiques avec plusieurs axes à gauche, comme illustré dans la section « Nouveautés de Graph Builder pour JMP 19 ».
Le même principe s'applique si certains axes se trouvent à droite du graphique, par exemple 1 axe à gauche et 1 axe à droite :
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:

Plus amusant : plusieurs valeurs à gauche et à droite :

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. Couler and Force du piston fo the left side) -
rather than being merged into the same graph.
The same logique holds for "tous parallel axes on the left":
Ne fusionnez pas vous-même les courbes en un seul graphique ; elles doivent d'abord figurer sur des graphiques différents superposés.
As soon as the user activates Parallel Axes , it's JMP who will merge the traces - et diviser les axes .
Mode expert : 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 usele même axe 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"X seulement" and "X et Y" as well ? - but maybe in a next version of JMP ...
side discussion of Réunion du groupe d'utilisateurs DACH 2025 - Impressions et ressources / JMP19 -- Liste de souhaits JMP
"Seulement X"
Voici un souhait figurant sur la liste. Peut-être pas exactement « Parallel X Axes » *) – mais étroitement lié à ce concept.
Axe des abscisses secondaire dans Graph Builder par @Morten

*) L'axe des abscisses secondaire pourrait être placé du côté opposé du graphique.
En fonction de l'emplacement de l'axe X secondaire, je peux envisager deux cas d'application distincts pour cet axe :
- 2 graphiques superposés, utilisant des axes x individuels / séparés
(comportement analogue à celui existant pour différents axes Y)
- un seul graphique avec un lien fixe, « physique » / mathématique, entre les étiquettes du premier et du second axe *)
par exemple
- 1/T [K] + T [°C]
- longueur d'onde en nm + longueur d'onde en 1/cm
- écart en % + facteurs sigma :

Avec l'option « Axes parallèles » (« X uniquement ») disponible, l'utilisateur pourra créer des axes X liés en ajoutant un axe secondaire sans graphique, puis en ajustant manuellement l'échelle et le décalage pour faire correspondre les valeurs des deux axes. Un lien mathématiquement correct et fixe serait plus professionnel, mais aussi beaucoup plus complexe à définir, notamment pour les liens complexes (les cas d'application les plus intéressants) comme X et 1/X, les pourcentages et les facteurs sigma. Je pense que la plupart des utilisateurs se contenteront de la première option (manuelle).
modifier:
**) Grâce à la fonctionnalité Axes parallèles (« Y uniquement ») disponible dans JMP19, l'utilisateur peut créer un graphique factice avec des axes X liés :
... en créant un graphique avec des axes Y « liés » manuellement et en faisant pivoter le graphique de 90° (voir ci-dessous)
***) Avec JMP19 et les versions antérieures, l'utilisateur peut créer un graphique factice avec des axes X liés : haut et bas.
en créant un graphique avec des axes Y gauche et droit « liés » manuellement et en faisant pivoter le graphique de 90° (voir ci-dessous)
"X et Y" ?
-> mieux vaut ne pas l'avoir ; )
Je me souviens d'une réunion où un collègue a utilisé un graphique de ce genre – c'est tellement difficile pour le cerveau humain de combiner les bonnes dimensions !
Cette approche permet peut-être de gagner de la place dans la présentation, mais elle gaspille du temps de réunion en discussions sur les axes.
Il s'agit d'un script jouet pour tester les fonctionnalités :
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)
Il crée un graphique avec un axe secondaire « X » dans Graph Builder :

- ...en fait, il ne s'agit pas d'un véritable axe « X », mais d'un axe « Y », et le graphique est pivoté.
(Veuillez noter l'orientation incorrecte de l'étiquette de l'axe 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.
En fait, il est préférable de désactiver les axes parallèles et d'utiliser des étiquettes placées de part et d'autre du graphique.
J'aime beaucoup ce mode — s'il était disponible pour l'axe X, je l'utiliserais très souvent.

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" )} )
)
);
On pourrait faire valoir que, pour ce « mode d'étiquetage », il est beaucoup plus facile d'utiliser l'option « côté opposé » du menu de la ligne de référence pour y faire apparaître les étiquettes :

Mais tout le monde déteste les « clones » qui apparaissent avec ce mode :

@hogi wrote:
... conflict between "Parallel Axes" and Overlay.
Ce conflit est également présent dans le mode actuel, ce qui réduit le nombre de cas d'application possibles.
Lorsque les axes parallèles sont activés et que l'utilisateur active également la superposition, celle-ci contrôle la couleur et les couleurs de tous les paramètres sont synchronisées (visibles par la même couleur des étiquettes d'axe).

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( "" ) ) )
)
)
);
l'astuce : utiliser l'encodage de superposition = Style,

et attribuer des couleurs différentes à toutes les courbes pour un même paramètre :

Comme cette opération doit être effectuée manuellement, cela peut prendre un temps fou. Une astuce simple : utilisez la barre d’outils Graph Builder / la télécommande Graph Builder disponible sur la plateforme.
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]