J'essaie d'écrire un script simple qui parcourt les colonnes et utilise chaque colonne de manière itérative en tant que valeurs Y dans un tracé. Je pense avoir la boucle vers le bas mais je ne peux pas régler l'axe Y sur une échelle logarithmique. Le code est exécuté mais chaque graphique généré est sur une échelle linéaire avec une plage spécifique à chaque colonne. Je voudrais que chaque graphique soit sur une échelle logarithmique (avec une plage spécifiquement définie min / max ou une plage générée automatiquement en fonction des données).
cd = Current Data Table();
column_names = cd << Get Column Names;
For ( i = 256, i <= 258, i++,
Graph Builder(
Size( 625, 660 ),
Variables(
X( :Day ),
Y( Column( cd, column_names[i] ) ),
Overlay( :Dose ),
),
Elements( Line( X, Y, Legend( 6 ) , Error Bars ("Standard Deviation") ) ),
SendToReport(
Dispatch(
{},
"Data Abs. Counts T CD56br" ,
ScaleBox,
{Scale( "Log" ), Format( "Best", 12), Min( 0.002 ), Max( 16000 ),
Inc( 1 ), Minor Ticks( 1 ), Label Row( Show Minor Labels( 0 ) )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
6,
Properties( 0, {Line Width( 2 )} ),
Properties( 1, {Line Width( 2 )} ),
Properties( 2, {Line Width( 2 )} ),
Properties( 3, {Line Width( 2 )} ),
Properties( 4, {Line Width( 2 )} )
)}
),
Dispatch(
{},
"Y title",
TextEditBox,
{Set Text( Column(cd, column_names[i]))}
)
)
))
J'ai lu https://community.jmp.com/t5/Discussions/Scripting-Y-Axis-to-be-Log-scale/mp/54573#M30852 et je suis toujours coincé. J'ai essayé d'inclure ScaleBox (1) ou ScaleBox (2) mais je ne pouvais même pas obtenir que le premier ou le second graphique soit sur une échelle logarithmique. J'essaie également la solution xPath, mais une aide supplémentaire serait très utile.
Merci beaucoup!!
Question bonus:
SendToReport(
Dispatch(
{},
"Data Abs. Counts T CD56br" ,Quel est le "Data Abs. Compte T CD56br "faisant référence à ici? C’est l’un de mes noms de colonne (mais pas TOUS les noms de colonne!) Qui a été copié / collé et conservé. Il semble fonctionner correctement (en dehors de l'échelle) et le remplacer par d'autres valeurs (par exemple, "données") ne semble rien casser. Qu'est-ce que c'est?
En fait, il se trouve que mon problème était vraiment la question BONUS. J'ai dû changer ce nom en char (nom_colonne [i]) pour que les spécifications suivantes s'appliquent à * graph *.
Donc le code qui fonctionne est:
cd = Current Data Table();
column_names = cd << Get Column Names;
For ( i = 255, i <= 256, i++,
gb = Graph Builder(
Size( 625, 660 ),
Variables(
X( :Day ),
Y( Column( cd, column_names[i] ) ),
Overlay( :Patient ),
Color( :Dose )
),
Elements( Line( X, Y, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
Char(column_names[i]),
ScaleBox,
{Scale( "Log" ), Format( "Best", 12 ), Min( 0.002 ), Max( 16000 ),
Inc( 1 ), Minor Ticks( 1 ), Label Row( Show Minor Labels( 0 ) )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
6,
Properties( 0, {Line Width( 2 )} ),
Properties( 1, {Line Width( 2 )} ),
Properties( 2, {Line Width( 2 )} ),
Properties( 3, {Line Width( 2 )} ),
Properties( 4, {Line Width( 2 )} )
)}
),
Dispatch(
{},
"Y title",
TextEditBox,
{Set Text( Column(cd, column_names[i]) )}
)
)
);
rgb = gb << report;
rgb << journal;
);