Estoy tomando un cierto rango de puntos de datos alrededor de la parte recta de mi curva e intentando extraer una intersección con el eje x mediante un ajuste lineal. Puedo mostrar una ecuación para la línea, pero no puedo hacer mucho con ella.
Como mínimo, quiero tomar esa ecuación, resolver para x cuando y = 0 y luego mostrar ese número debajo del gráfico.
¿Cuál sería la mejor manera de extraer esta información?
En un escenario ideal, podría mostrar todo el rango de datos, pero solo ajustar el rango de puntos de datos que tengo mostrados actualmente.
Gracias por tu ayuda.
Cómo debería verse idealmente:

Mi gráfico con el filtro de datos:

El código:
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" )} )
)
);
Dado que está usando un filtro y luego ajustando una línea a ese pequeño subconjunto, use Ajustar modelo para ajustar la línea. De esa manera, tiene la opción Predicción inversa del menú emergente rojo en Estimaciones> Predicción inversa. Ponga su Y como 0 y JMP encontrará su X e incluso proporcionará un intervalo de confianza del 95% para la X.
Realización de la gran idea de @Dan_Obermiller esto puede verse de la siguiente manera:
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>