나는 당신이 원하는 것을 얻는 두 가지 방법 중 하나를 봅니다.
첫 번째 방법은 Y축에 대해 2개의 열이 있는 위치로 데이터를 변경하는 것입니다.Smoother를 위한 Ram Travel 각각에 대한 열 하나와 Onset 시간을 위한 Ram Travel에 대한 열 하나.테이블의 행이 겹치지 않습니다.실제 램 트래블 데이터 또는 오프셋에 대한 램 트래블 데이터에 대한 데이터가 있지만 둘 다 있는 것은 아닙니다.

그런 다음 X축에 시간이 있고 Y축에 Ram Travel과 Ram Travel2가 있는 차트를 만듭니다.
그러면 Y축이 왼쪽 및 오른쪽 축으로 분할됩니다.그러면 두 데이터 집합을 독립적으로 처리할 수 있습니다.오른쪽 축은 점으로, 왼쪽 축은 Smoother로 둡니다.

두 번째 방법은 Onset 기준점에 대한 기준선을 X축에 추가하는 것입니다.예제 차트에 표시된 대로 정적 값인 경우 이 방법이 디스플레이를 처리하는 더 좋은 방법일 수 있습니다.

내가보고있는 각 실험에 대해 다른 값으로 어떻게 작동하는지 잘 모르겠습니다. 데이터는 모두 하나의 테이블에 있고 로컬 데이터 필터를 사용하여 한 실험 간에 다른 실험으로 이동합니다. 그래프가 모든 단일 실험에 대한 기준선을 찾고 사용 중인 로컬 데이터 필터를 기반으로 선을 변경하도록 하는 방법이 있습니까?
몇 가지 샘플 데이터를 제공할 수 있다면 문제를 살펴볼 것입니다.
예제 데이터 세트를 첨부했습니다. 이 표에는 예를 들어 내가 지금 하고 있는 방식으로 그래프를 만드는 스크립트도 포함되어 있습니다.
한 세트의 값을 새 축으로 이동하면 시각화가 가능하지만 그렇게 하면 다른 요소에 대해 보조 축을 사용할 수 없습니다. 제가 이미 그래프에 포함시키려고 계획했던 2차 요인이 있는 그래프의 이미지를 첨부했습니다.
참조선은 실제로 좋은 옵션이 아닙니다. 이러한 그래프가 많이 있고 각각 빨간색 데이터 포인트에 대해 서로 다른 포인트가 있기 때문입니다. 항상 선이고 시간이 지나도 변하지 않지만 배치에 따라 값이 바뀝니다. 두 개의 y 요소가 있는 그래프의 예가 첨부되어 있습니다.

데이터를 더 매끄럽게 표시하고 1차 및 2차 중요한 시간을 참조선으로 표시하도록 코드를 수정할 수 있었습니다.

JSL은 Make Row State Handler를 사용하여 로컬 데이터 필터가 변경되었는지 확인한 다음 올바른 1st 및 2nd Important Time 데이터를 찾고 이전 참조 라인을 제거한 다음 새 참조 라인을 추가합니다.
Names Default To Here( 1 );
dt = Current Data Table();
New Window( "filter test",
Data Filter Context Box(
H List Box(
dt << Data Filter(
Local,
Add Filter(
columns( :ProcessID ),
Where( :ProcessID == "\!"0A84CE32-1054-494B-B89C-1F4780E1F760\!"" ),
Display( :ProcessID, N Items( 15 ), Find( Set Text( "" ) ) )
)
),
V List Box(
//t = Text Box( "0 Rows Excluded" ),
t = gb = Graph Builder(
Size( 483, 600 ),
Variables(
X( :"Time Adjusted (s)"n ),
Y( :"Ram Travel Corrected (mm)"n ),
Y( :Other Factor, Position( 1 ), Side( "Right" ) )
),
Elements( Smoother( X, Y( 1 ), Legend( 8 ) ), Smoother( X, Y( 2 ), Legend( 9 ) ) ),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties( 0, {Line Width( 4 )}, Item ID( "Smooth(Ram Travel Corrected (mm))", 1 ) )
), Legend Model( 9, Properties( 0, {Line Width( 4 )}, Item ID( "Smooth(Other Factor)", 1 ) ) )}
)
)
)
)
)
);
updatetext = Function( {},
rs = t << Get Row States();
n = 0;
For( ii = 1, ii <= N Rows( rs ), ii++,
If( Excluded( As Row State( rs[ii] ) ),
n++,
Break();
)
);
If( ii != preRefLine,
Try( Report( gb )[AxisBox( 1 )] << Remove Ref Line( dt:"1st Important Time (s)"n[preRefLine] ) );
Try( Report( gb )[AxisBox( 1 )] << Remove Ref Line( dt:"2nd Important Time (s)"n[preRefLine] ) );
Report( gb )[AxisBox( 1 )] << Add Ref Line( dt:"1st Important Time (s)"n[ii], "Solid", "Orange", "", 4 );
Report( gb )[AxisBox( 1 )] << Add Ref Line( dt:"2nd Important Time (s)"n[ii], "Solid", "Green", "", 4 );
preRefLine = ii;
);
);
rsupdate = Function( {a},
If( Is Matrix( a ),
updatetext()
)
);
rsh = t << Make Row State Handler( dt, rsupdate );
updatetext();
다른 그래프에서 일부 변수를 비활성화하는 옵션도 있습니다.

두 개의 다른 x축이 있는 그래프가 있습니다. 그래프에서 실제 값이 아닌 부드러운 값만 사용하고 싶습니다. 그러나 smoother를 켜면 두 번째 축의 값이 사라집니다(빨간색 값). 이를 방지할 수 있는 방법이 있습니까? 내가 말하는 것에 대한 예는 첨부된 이미지를 참조하십시오.
