Je prends une certaine plage de points de données autour de la partie droite de ma courbe et j'essaie d'en extraire une interception x à l'aide d'un ajustement linéaire. Je peux afficher une équation pour la ligne, mais je ne parviens pas à en faire grand-chose.
Au minimum, je veux récupérer cette équation, résoudre x lorsque y = 0, puis afficher ce nombre sous le graphique.
Quelle serait la meilleure façon de procéder pour extraire ces informations ?
Dans un scénario idéal, je pourrais afficher l’intégralité de la plage de données, mais uniquement adapter la plage de points de données que j’ai actuellement affichée.
Merci pour votre aide.
À quoi cela devrait idéalement ressembler :

Mon tracé avec le filtre de données :

Le code:
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" )} )
)
);
Puisque vous utilisez un filtre et que vous ajustez ensuite une ligne à ce petit sous-ensemble, utilisez Ajuster le modèle pour ajuster la ligne. De cette façon, vous avez l'option Inverse Prediction dans le menu contextuel rouge sous Estimates > Inverse Prediction. Mettez votre Y à 0 et JMP trouvera votre X et fournira même un intervalle de confiance de 95 % pour le X.
Réaliser la grande idée de @Dan_Obermiller cela peut ressembler à ceci :
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>