<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto realizzando un modello di adattamento non lineare con 7 punti dati che vanno sempre da 500 a 1700.I grafici vengono visualizzati con l'asse X compreso tra -250 e 1750.Come posso impostare l'asse x da 540 a 1750?Ho provato accedendo all'asse box (2) e ScaleBox ma il registro dice sempre che non riesce a trovarlo.Ecco quello che ho attualmente.
dt << Nuova colonna( "Modello", formula( Parametro( {L = 850, D = 4000, U =0.1}, (((1 - U) / 2) * (cos(pi()*(:BarLength / L)) + 1) + U) * exp(-1*(:BarLength / D)))));
dt << Seleziona dove ( :SiteColumn == "J" ) << Escludi << Nascondi;
titolox = wf || "_PSPP_FIT";
MES1 = Nuova finestra( titolox,
nl = dt << Non lineare(
Y( :NormTrans ),
X( :Modello ),
xaxis = nl[asse box( 2 )],
xaxis << Impostazioni asse(Max(1750), Min(450)),
Limiti dei parametri( L( 500, 1300 ), D( 200, 20000 ), U( 0, 1 ) ),
Da( :FlashField, :ReqWaveLn ),
Invia a rapporto(
Dispatch( {}, "Pannello di controllo", OutlineBox, {Chiudi( 1 )} ),
Dispatch( {"Plot"}, "1" , ScaleBox,{Min( 450 ), Max( 1750 ), Inc( 500 ), Minor Ticks( 1 )})
//Dispatch( {}, "1", ScaleBox, {Inc( 250 ), Minor Ticks( 1 )} )
//Dispatch( {}, "1", asse box(2), {Min( 450 ), Max( 1750 ), Inc( 250 ), Minor Ticks( 1 )} )
//Dispatch( {"Plot"}, "Grafico non lineare", FrameBox, {Dimensione frame( 378, 262 )} ),
//Invio( {}, "Soluzione", OutlineBox, {Chiudi( 1 )} )
)
);
nl << finire;
);
La cosa strana è che se regolo manualmente l'asse e poi copio lo script, si presenta esattamente come viene mostrato sopra.La modifica manuale dell'asse su uno dei grafici e la copia dello script mostra come segue:
non lineare(
Y( :NormTrans ),
X( :Modello ),
Limiti dei parametri( L( 500, 1300 ), D( 200, 20000 ), U( 0, 1 ) ),
Newton,
Fine,
Dove( :FlashField == "CF1" & :ReqWaveLn == 769.1172 ),
Invia a rapporto(
Dispatch( {}, "Pannello di controllo", OutlineBox, {Chiudi( 1 )} ),
Spedizione(
{"Complotto"},
"1",
ScaleBox,
{Min( 450 ), Max( 1750 ), Inc( 500 ), Minor Tick( 1 )}
)
)
)
Non sono in grado di riprodurre il grafico non lineare iniziale con un intervallo così ampio per l'asse X, ma suppongo che alcuni dei valori X per :SiteColumn=="J" siano negativi. In tal caso, il minimo dell'asse si basa sui valori negativi, anche se sono nascosti ed esclusi.
Consiglierei di spostare il asse x dichiarazioni al di fuori del Non lineare() chiamata alla piattaforma, poiché non penso che i messaggi della casella di visualizzazione come questi siano validi all'interno di una chiamata alla piattaforma:
xaxis = report(nl)[asse box( 2 )];
xaxis << Impostazioni asse( Max( 1750 ), Min( 450 ) );
Inoltre, si noti che la casella dell'asse è un pedice di rapporto(nl) piuttosto che nl . L'Axis Box si trova nel livello del report, piuttosto che nel livello della piattaforma.
Almeno nei dati di esempio del giocattolo che ho creato per testare questo, sono stato in grado di rimuovere tutta la parte Send To Report Dispatch() del tuo script e utilizzare solo le due istruzioni xaxis sopra per ottenere l'intervallo dell'asse X da 450 a 1750.
Fammi sapere se funziona per te o se vedi ancora un'ampia gamma di assi X.
Grazie,
Michael
Solo una supposizione ....
Prova a mettere una virgola alla fine di questa riga:
Dispatch( {"Plot"}, "1" , ScaleBox,{Min( 450 ), Max( 1750 ), Inc( 500 ), Minor Ticks( 1 )})