Ich nehme einen bestimmten Bereich von Datenpunkten um den geraden Teil meiner Kurve herum und versuche, mithilfe einer linearen Anpassung einen x-Achsenabschnitt daraus zu extrahieren. Ich kann eine Gleichung für die Linie anzeigen, kann damit aber nicht viel anfangen.
Zumindest möchte ich diese Gleichung erfassen, nach x auflösen, wenn y = 0 ist, und diese Zahl dann unter der Grafik anzeigen.
Was wäre der beste Weg, diese Informationen herauszuholen?
Im Idealfall könnte ich den gesamten Datenbereich anzeigen, aber nur den Bereich der Datenpunkte anpassen, den ich aktuell auch angezeigt habe.
Vielen Dank für Ihre Hilfe.
So sollte es idealerweise aussehen:

Mein Plot mit dem Datenfilter:

Der 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" )} )
)
);
Da Sie einen Filter verwenden und dann eine Linie an diese kleine Teilmenge anpassen, verwenden Sie Modell anpassen, um die Linie anzupassen. Auf diese Weise haben Sie die Option Inverse Vorhersage aus dem roten Popup-Menü unter Schätzungen > Inverse Vorhersage. Setzen Sie Ihr Y auf 0 und JMP findet Ihr X und liefert sogar ein 95 %-Konfidenzintervall für das X.
Durchführung der großartigen Idee von @Dan_Obermiller das kann wie folgt aussehen:
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>