새로운 병렬 Y축 설정의 기본 아이디어는 JMP 19의 Graph Builder의 새로운 기능 에 표시된 것처럼 왼쪽에 여러 축이 있는 플롯의 오버레이를 생성하는 것입니다.
일부 축이 그래프의 오른쪽에 있는 경우에도 동일한 원칙이 적용됩니다. 예를 들어, 1개 축은 왼쪽에 있고 1개 축은 오른쪽에 있는 경우입니다.
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 위시리스트
"X만"
소원 목록에 소원이 하나 있습니다. 정확히 "평행 X축"은 아니지만, 그것과 밀접한 관련이 있습니다.
@모르텐 의 Graph Builder의 보조 x축

*) 보조 x축은 그래프의 반대쪽에 배치될 수 있습니다.
2차 X축의 위치에 따라 2차 X축에 대한 2가지 뚜렷한 적용 사례를 생각해 볼 수 있습니다.
- 개별/별도의 x축을 사용하는 2개의 오버레이 그래프
(다른 Y축에 대한 기존 동작과 유사)
- 첫 번째 축과 보조 축 레이블 사이에 고정된 "물리적"/수학적 링크가 있는 단일 그래프 *)
예를 들어
- 1/T [K] + T[°C]
- 파장(nm) + 파장(1/cm)
- 시그마의 % + 계수의 편차:

*) 평행 축("X 전용")을 사용하면 사용자는 그래프 없이 보조 축을 추가한 후, 두 축의 값에 맞게 배율과 오프셋을 수동으로 조정하여 연결된 X 축을 만들 수 있습니다. 수학적으로 정확하고 고정된 연결은 더욱 전문적이지만, 특히 X, 1/X, 시그마 비율 및 인수와 같이 복잡한 연결(= 가장 흥미로운 적용 사례)의 경우 정의하기가 훨씬 더 복잡합니다. 대부분의 사용자는 첫 번째(수동) 옵션에 만족할 것으로 예상합니다.
편집하다:
**) JMP19에서 사용 가능한 평행 축( " Y 전용 ")을 사용하면 사용자는 연결된 X 축이 있는 가짜 그래프를 만들 수 있습니다.
... Y축을 수동으로 "연결"하여 그래프를 만들고 그래프를 90° 회전합니다(아래 참조).
***) JMP19 이하에서는 사용자가 연결된 X축(위쪽 및 아래쪽)을 사용하여 가짜 그래프를 만들 수 있습니다.
수동으로 "연결된" 좌우 Y축을 사용하여 그래프를 만들고 그래프를 90° 회전합니다(아래 참조).
"X와 Y"?
-> 없는 게 낫죠 ; )
동료가 이런 그래프를 사용한 회의를 기억합니다. 인간의 뇌가 올바른 차원을 결합하는 게 너무 어렵거든요!
이런 접근 방식은 프레젠테이션에서 공간을 절약할 수 있지만, 축에 대한 논의에 회의 시간을 낭비하게 됩니다.
이것은 다음과 같은 기능을 가지고 놀 수 있는 장난감 스크립트입니다:
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)
Graph Builder에서 보조 "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" )} )
)
);
"레이블 모드"의 경우 참조선 메뉴에서 "반대쪽"을 사용하면 레이블을 해당 위치에 표시하는 것이 훨씬 더 쉽다고 주장할 수도 있습니다.

하지만 이 모드에서 나타나는 "복제본"은 누구나 싫어합니다.

@호기 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( "" ) ) )
)
)
);
요령: 오버레이 인코딩 = 스타일 사용

동일한 매개변수에 대해 모든 곡선에 다른 색상을 지정합니다.

이 작업은 수동으로 해야 하므로 시간이 오래 걸릴 수 있습니다. 간단한 방법: 마켓에서 제공하는 그래프 빌더 도구 모음 /Graph Builder 원격 제어 기능을 사용하세요.
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]