저는 곡선의 직선 부분 주변의 특정 범위의 데이터 포인트를 취하고 선형 적합을 사용하여 x 절편을 추출하려고 시도하고 있습니다. 선에 대한 방정식을 표시할 수 있지만 많은 작업을 할 수 없는 것 같습니다.
최소한 그 방정식을 잡고, y = 0일 때 x에 대한 해를 구한 다음, 그 숫자를 그래프 아래에 표시하고 싶습니다.
이 정보를 꺼내려면 어떤 방법이 가장 좋을까요?
이상적인 시나리오라면 전체 데이터 범위를 표시하면서 현재 표시하고 있는 데이터 포인트 범위에만 적용할 수 있을 것입니다.
귀하의 도움에 감사드립니다.
이상적으로는 다음과 같아야 합니다.

데이터 필터를 사용한 내 플롯:

코드:
Graph Builder(
Size( 618, 525 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :V1 ), Y( :I1 ), Page( :Sweep Name ), Overlay( :Test Count ) ),
Elements(
Line Of Fit( X, Y, Legend( 18 ), Confidence of Fit( 0 ) ),
Points( X, Y, Legend( 19 ) )
),
Local Data Filter(
Add Filter(
columns( :I1, :Test Count ),
Where( :I1 >= 0.003 & :I1 <= 0.008 ),
Where( :Test Count == "1" ),
Display( :Test Count, N Items( 15 ), Find( Set Text( "" ) ) )
)
),
SendToReport(
Dispatch(
{},
"I1",
ScaleBox( 2 ),
{Min( 0 ), Max( 0.008 ), Inc( 0.001 ), Minor Ticks( 1 )}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "On Voltage" )} )
)
);
필터를 사용한 다음 그 작은 부분 집합에 선을 맞추는 중이므로 모델 맞춤을 사용하여 선을 맞춥니다. 그렇게 하면 Estimates > Inverse Prediction 아래의 빨간색 팝업 메뉴에서 Inverse Prediction 옵션을 사용할 수 있습니다. Y를 0으로 하면 JMP가 X를 찾고 X에 대한 95% 신뢰 구간도 제공합니다.
의 위대한 아이디어를 실행 @Dan_Obermiller 이것은 다음과 같이 보일 수 있습니다.
Names Default To Here( 1 );
// generate data
dt = New Table( "Characteristic curve",
add rows( 21 ),
New Column( "V", set values( Matrix( -10 :: 10 ) / 10 ) ),
New Column( "I", set each value( If( Exp( :V ) < 1.5, 0, Exp( :V ) - 1.5 ) ) )
);
dt << show window( 0 );
// create a dashboard to display all windows
nw = New Window( "Dashboard Inverse Prediction",
H List Box( vlb_left = V List Box(), vlb_right = V List Box() ),
<<ON close="">= 0.2 ) ) )
)
);
// get report and make into data table
tb_lst = Report( fm_obj ) << xpath( "//TableBox" );
result_dt = tb_lst[N Items( tb_lst )] << make data table;
result_dt << show window( 0 );
// and fill into dashboard
vlb_left << append( outline box("Inverse Prediction", dg1 = result_dt << new data box()) );
dg1 << close side panels( 1 );
dg1 << set height( 30 );
// place GraphBuilder into dashboard
vlb_left << append(// visualize
dt << Graph Builder(
show control panel( 0 ),
Variables( X( :V ), Y( :I ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
)
);
vlb_left << append( dg2 = dt << new data box() );
dg2 << close side panels( 1 );
</ON>