Die Hauptidee hinter der neuen Einstellung für parallele Y-Achsen besteht darin, Überlagerungen von Diagrammen mit mehreren Achsen auf der linken Seite zu erzeugen, wie in „Neues im Graph Builder für JMP 19“ gezeigt.
Das gleiche Prinzip gilt auch, wenn sich einige Achsen rechts im Diagramm befinden, z. B. bei einer Achse links und einer Achse rechts:
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:

Mehr Spaß: Mehrere Werte auf der linken und rechten Seite:

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. Fließen and Kolbenkraft fo the left side) -
rather than being merged into the same graph.
The same Logik holds for "alle parallel axes on the left":
Die Spuren dürfen nicht selbst in denselben Graphen zusammengeführt werden; sie müssen zunächst in verschiedenen, übereinanderliegenden Graphen dargestellt werden.
As soon as the user activates Parallel Axes , it's JMP who will merge the traces - und die Achsen teilen .
Expertenmodus: 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 usedie gleiche Achse 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"Nur X" and "X und Y" as well ? - but maybe in a next version of JMP ...
side discussion of DACH Users Group Treffen 2025 - Eindrücke und Ressourcen / JMP19 – JMP-Wunschliste
"Nur X"
Hier ist ein Wunsch von der Wunschliste. Vielleicht nicht genau „Parallele X-Achsen“ *) – aber eng damit verwandt.
Sekundäre x-Achse im Graph Builder von @Morten

*) Die sekundäre x-Achse könnte auf der gegenüberliegenden Seite des Diagramms platziert werden.
Unabhängig von der Position der sekundären X-Achse fallen mir 2 unterschiedliche Anwendungsfälle für die sekundäre X-Achse ein:
- 2 übereinanderliegende Diagramme mit jeweils eigener x-Achse
(analog zum bestehenden Verhalten für unterschiedliche Y-Achsen)
- ein einzelnes Diagramm mit einer festen, "physikalischen" / mathematischen Verbindung zwischen den Beschriftungen der ersten und der zweiten Achse *)
z.B
- 1/T [K] + T [°C]
- Wellenlänge in nm + Wellenlänge in 1/cm
- Abweichung in % + Faktoren von Sigma:

*) Mit der Option „Parallele Achsen (nur X)“ kann der Benutzer die verknüpften X-Achsen erstellen, indem er eine zweite Achse ohne Diagramm hinzufügt und anschließend Skalierung und Versatz manuell an die Werte beider Achsen anpasst. Eine mathematisch korrekte/feste Verknüpfung wirkt professioneller, ist aber auch deutlich komplexer zu definieren, insbesondere bei komplizierten Verknüpfungen (den interessantesten Anwendungsfällen) wie X und 1/X oder Prozent und Faktoren von Sigma. Ich vermute, die meisten Benutzer werden mit der ersten (manuellen) Option zufrieden sein.
bearbeiten:
**) Mit der in JMP19 verfügbaren Funktion „Parallele Achsen“ ( nur Y- Achsen) kann der Benutzer ein Dummy-Diagramm mit verknüpften X-Achsen erstellen:
... indem ein Diagramm mit manuell "verknüpften" Y-Achsen erstellt und das Diagramm um 90° gedreht wird (siehe unten).
***) Mit JMP19 und älteren Versionen kann der Benutzer ein Dummy-Diagramm mit verknüpften X-Achsen erstellen: oben und unten
indem man ein Diagramm mit manuell "verknüpften" linken und rechten Y-Achsen erstellt und das Diagramm um 90° dreht (siehe unten).
"X und Y"?
-> Besser, man hat es NICHT ; )
Ich erinnere mich an ein Meeting, bei dem ein Kollege so ein Diagramm benutzte – es ist soooo schwierig für das menschliche Gehirn, die richtigen Dimensionen zu kombinieren!
Diese Vorgehensweise mag zwar Platz in der Präsentation sparen, aber sie verschwendet Besprechungszeit mit Diskussionen über die Achsen.
Dies ist ein einfaches Skript, um die Funktionen auszuprobieren:
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)
Es erstellt ein Diagramm mit einer sekundären „X“-Achse im Graph Builder :

- ... eigentlich keine echte „X“-Achse – es ist eine Y-Achse, und das Diagramm ist gedreht.
(Bitte beachten Sie die falsche Ausrichtung der Y-Achsenbeschriftung.)
- 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.
Tatsächlich ist es besser, die parallelen Achsen auszuschalten und Beschriftungen auf gegenüberliegenden Seiten des Diagramms zu verwenden.
Ich mag diesen Modus wirklich sehr – wenn er auch für die X-Achse verfügbar wäre, würde ich ihn ziemlich oft benutzen.

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" )} )
)
);
Man könnte argumentieren, dass es für diesen „Beschriftungsmodus“ viel einfacher ist, im Referenzlinienmenü die Option „Gegenüberliegende Seite“ zu verwenden, um die Beschriftungen dorthin zu erhalten:

Aber jeder hasst die "Klone", die in diesem Modus auftauchen:

@hogi wrote:
... conflict between "Parallel Axes" and Overlay.
Dieser Konflikt besteht auch im aktuellen Modus und reduziert dadurch die Anzahl möglicher Anwendungsfälle.
Bei aktivierter Funktion „Parallele Achsen“ und gleichzeitiger Aktivierung der Funktion „Überlagerung“ werden die Farben aller Parameter durch die Überlagerung gesteuert und synchronisiert (sichtbar durch die gleiche Farbe der Achsenbeschriftungen).

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( "" ) ) )
)
)
);
Der Trick: Overlay-Codierung = Stil verwenden

und allen Kurven für denselben Parameter unterschiedliche Farben zuweisen:

Da dies manuell erfolgen muss, kann es ewig dauern. Ein einfacher Trick: Verwenden Sie die Graph Builder Toolbar / Graph Builder Remote Control aus dem 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]