<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Je fais un modèle d'ajustement non linéaire qui a 7 points de données qui vont toujours de 500 à 1700.Les tracés apparaissent avec l'axe X comme étant de -250 à 1750.Comment puis-je définir l'axe des x entre 540 et 1750 ?J'ai essayé en accédant à l'axis box(2) et à ScaleBox mais le journal indique toujours qu'il ne peut pas le trouver.Voici ce que j'ai actuellement.
dt << Nouvelle colonne( "Modèle", formule( Paramètre( {L = 850, D = 4000, U =0.1}, (((1 - U) / 2) * (cos(pi()*(:BarLength / L)) + 1) + U) * exp(-1*(:BarLength / D)))));
dt << Sélectionner Où( :SiteColumn == "J" ) << Exclure << Masquer;
titrex = wf || "_PSPP_FIT" ;
MES1 = Nouvelle fenêtre( titrex,
nl = dt << Non linéaire(
Y( :NormTrans ),
X( :Modèle ),
axe x = nl[boîte axe( 2 )],
xaxis << Paramètres d'axe (Max (1750), Min (450)),
Limites des paramètres( L( 500, 1300 ), D( 200, 20000 ), U( 0, 1 ) ),
Par( :FlashField, :ReqWaveLn ),
EnvoyerVersRapport(
Dispatch( {}, "Panneau de configuration", OutlineBox, {Fermer( 1 )} ),
Dispatch( {"Plot"}, "1", ScaleBox,{Min( 450 ), Max( 1750 ), Inc( 500 ), Minor Ticks( 1 )})
//Dispatch( {}, "1", ScaleBox, {Inc( 250 ), Minor Ticks( 1 )} )
//Dispatch( {}, "1", axis box(2), {Min( 450 ), Max( 1750 ), Inc( 250 ), Minor Ticks( 1 )} )
//Dispatch( {"Plot"}, "Graphique non linéaire", FrameBox, {Taille de trame( 378, 262 )} ),
//Dispatch( {}, "Solution", OutlineBox, {Fermer( 1 )} )
)
);
nl << terminer ;
);
Ce qui est bizarre, c'est que si j'ajuste manuellement l'axe et que je copie ensuite le script, il apparaît exactement comme il apparaît ci-dessus.Changer manuellement l'axe sur l'un des tracés et copier le script s'affiche comme suit :
Non linéaire(
Y( :NormTrans ),
X( :Modèle ),
Limites des paramètres( L( 500, 1300 ), D( 200, 20000 ), U( 0, 1 ) ),
Newton,
Finir,
Où( :FlashField == "CF1" & :ReqWaveLn == 769.1172 ),
EnvoyerVersRapport(
Dispatch( {}, "Panneau de configuration", OutlineBox, {Fermer( 1 )} ),
Expédition(
{"Parcelle"},
"1",
ScaleBox,
{Min( 450 ), Max( 1750 ), Inc( 500 ), Tiques mineures( 1 )}
)
)
)
Je ne suis pas en mesure de reproduire le tracé non linéaire initial ayant une plage aussi large pour l'axe X, mais je suppose que certaines des valeurs X pour :SiteColumn=="J" sont négatives. Si tel est le cas, le minimum de l'axe est basé sur les valeurs négatives, même si elles sont masquées et exclues.
Je recommanderais de déplacer le axe des abscisses déclarations en dehors de Non linéaire() appel de plate-forme, car je ne pense pas que les messages de boîte d'affichage tels que ceux-ci soient valides dans un appel de plate-forme :
xaxis = report(nl)[axis box( 2 )] ;
xaxis << Paramètres d'axe( Max( 1750 ), Min( 450 ) );
Notez également que la case de l'axe est un indice de rapport(nl) plutôt que NL . L'Axis Box se trouve dans la couche de rapport, plutôt que dans la couche de plate-forme.
Au moins dans les données d'exemple de jouets que j'ai créées pour tester cela, j'ai pu supprimer toute la partie Send To Report Dispatch() de votre script et utiliser simplement les deux instructions xaxis ci-dessus pour obtenir la plage de l'axe X de 450 à 1750.
Faites-moi savoir si cela fonctionne pour vous ou si vous voyez toujours une large plage d'axe X.
Merci,
Michael
Juste une supposition....
Essayez de mettre une virgule à la fin de cette ligne :
Dispatch( {"Plot"}, "1", ScaleBox,{Min( 450 ), Max( 1750 ), Inc( 500 ), Minor Ticks( 1 )})