新的平行 Y 軸設定背後的主要想法是產生左側具有多個座標軸的疊加圖,如JMP 19 圖形產生器新增功能中所示。
如果某些座標軸位於圖表的右側,例如一個座標軸位於左側,一個座標軸位於右側,則相同的原理也適用:
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:

更有趣:左右兩側都有多個值:

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. 流動 and 活塞力 fo the left side) -
rather than being merged into the same graph.
The same 邏輯 holds for "全部 parallel axes on the left":
不要自行將軌跡合併到同一張圖中;首先,它們必須位於彼此重疊的不同圖中。
As soon as the user activates Parallel Axes , it's JMP who will merge the traces - 並將座標軸分割開來。
專家模式: 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 use同一軸 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 and X 和 Y as well ? - but maybe in a next version of JMP ...
side discussion of DACH 用戶群 2025 年會議 - 印象與資源 / JMP19 -- JMP願望清單
這是一個用於測試功能的玩具腳本:
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)
它在圖形產生器中創建一個帶有輔助“X”軸的圖表:

- ……實際上,這不是真正的「X」軸——它是Y軸,而且圖表是旋轉過的。
(請注意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.
實際上,最好關閉平行座標軸,並在圖表的相對兩側使用標籤。
我非常喜歡這個模式——如果它也適用於 X 軸,我會經常使用它。

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" )} )
)
);
有人可能會認為,對於這種“標籤模式”,使用參考線選單中的“相反側”來獲取標籤要容易得多:

但每個人都討厭在這種模式下出現的「克隆人」:

@hogi wrote:
... conflict between "Parallel Axes" and Overlay.
在當前模式下也存在這種衝突,從而減少了可能的應用案例數量。
啟用平行軸後,當使用者同時啟用疊加層時,疊加層會控制顏色,所有參數的顏色都會同步(透過軸標籤的相同顏色可見)。

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( "" ) ) )
)
)
);
訣竅:使用 Overlay Encoding = Style,

並為同一參數的所有曲線分配不同的顏色:

由於這必須手動完成,因此可能非常耗時。一個簡單的技巧:使用應用程式商店中的「圖表建立器工具列/圖表建構器遠端控制」:
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]