Inverser les couleurs dans Contour Plot PlatformJ'ai un script qui parcourt plusieurs colonnes et génère des tracés de contour.
Si les valeurs des colonnes sont négatives, je souhaite inverser les couleurs du contour, je définis donc une variable comme celle-ci :
if(col mean( col1 ) < 0, revcols = 1, revcols = 0);
Contour Plot(
...
Reverse Colors( revcols ),
...
Cependant, le problème que j'ai est que le tracé de contour est désormais toujours inversé - il semble ignorer la valeur de revcols.
Si je code en dur
Reverse Colors( 0 )
alors ça n'inverse pas les couleurs, mais si revcols = 0 alors c'est inversé.
Dois-je faire quelque chose d'intelligent pour lui faire traiter une variable avec la valeur 0 comme zéro dans ce cas ?
Merci!
Re : Inverser les couleurs dans Contour Plot PlatformVoici une solution qui fonctionne sur mon système
Clear Globals();
rev = 1;
Eval(
Substitute(
Expr(
Contour Plot(
X( :height, :weight ),
Y( :age ),
Show Data Points( 0 ),
Fill Areas( 1 ),
Label Contours( 0 ),
__reverse__,
Transform( "Range Normalized" ),
Specify Contours( Min( 12.5 ), Max( 16.5 ), N( 9 ) ),
SendToReport(
Dispatch(
{},
"Contour Plot for age",
OutlineBox,
{Set Title( "Contour Plot for age, with rev = " || Char( rev) || " using substitute" )}
)
)
)
),
Expr( __reverse__ ), If(rev==1,parse("Reverse Colors( 1 )"),parse("")))
);Re : Inverser les couleurs dans Contour Plot PlatformMerci pour la suggestion, mais toujours pas de chance. J'ai essayé ceci :
// Code as run
Clear Globals();
rev = 0;
Eval(
Substitute(
Expr(
Contour Plot(
X( :height, :weight ),
Y( :age ),
Show Data Points( 0 ),
Fill Areas( 1 ),
Label Contours( 0 ),
Reverse Colors( __reverse__ ),
Transform( "Range Normalized" ),
Specify Contours( Min( 12.5 ), Max( 16.5 ), N( 9 ) ),
SendToReport(
Dispatch(
{},
"Contour Plot for age",
OutlineBox,
{Set Title( "Contour Plot for age, with rev = " || Char( __reverse__ ) || " using substitute" )}
)
)
)
),
Expr( __reverse__ ), rev
)
);Cependant, la carte est toujours sortie avec des couleurs inversées. Si je sauvegarde le script du graphique, j'obtiens ceci :
// code from Save Script
Contour Plot(
X( :height, :weight ),
Y( :age ),
Show Data Points( 0 ),
Fill Areas( 1 ),
Label Contours( 0 ),
Reverse Colors( 1 ),
Transform( "Range Normalized" ),
Specify Contours( Min( 12.5 ), Max( 16.5 ), N( 9 ) ),
SendToReport(
Dispatch(
{},
"Contour Plot for age",
OutlineBox,
{Set Title( "Contour Plot for age, with rev = 0 using substitute" )}
)
)
);Comme vous pouvez le voir, la valeur de __reverse__ a été correctement remplacée dans le texte du titre, mais pour une raison quelconque, j'obtiens toujours
Reverse Colors( 1 )
Est-ce un bug et existe-t-il une solution de contournement ?
Merci pour votre aide!
Re : Inverser les couleurs dans Contour Plot PlatformEssayez de convertir votre code en une structure Substitute, qui présentera à JMP la valeur de rev comme si elle était codée en dur.
rev = 1;
Eval(
Substitute(
Expr(
Contour Plot(
X( :height, :weight ),
Y( :age ),
Show Data Points( 0 ),
Fill Areas( 0 ),
Label Contours( 0 ),
Reverse Colors( __reverse__ ),
Transform( "Range Normalized" ),
Specify Contours( Min( 12.5 ), Max( 16.5 ), N( 9 ) )
)
),
Expr( __reverse__ ), rev
)
);Re : Inverser les couleurs dans Contour Plot PlatformMerci pour votre réponse! J'utilise JMP 14.2.0 sur MacOS 10.14.6.
J'ai essayé votre script mais je vois toujours le même problème. J'ai ajouté ceci au script pour être sûr d'obtenir le bon résultat :
SendToReport(
Dispatch( {}, "Contour Plot for age", OutlineBox, {Set Title( "Contour Plot for age, with rev = " || Char( rev ) )} )
)Et les graphiques ressemblent à ceci (j'ai aussi rempli les contours pour que ce soit plus évident) :


Comme avant, si je code en dur
Reverse Colors( 0 )
Ensuite, j'obtiens ceci (ce qui est correct) :

J'espère que cela t'aides. Merci!
Re : Inverser les couleurs dans Contour Plot PlatformJ'ai exécuté le script ci-dessous dans JMP 12 et JMP 15 et les deux ont fonctionné sans erreur.Si vous pouvez fournir plus de détails, je pourrai peut-être aborder le problème.
rev=1;
Contour Plot(
X( :height, :weight ),
Y( :age ),
Show Data Points( 0 ),
Fill Areas( 0 ),
Label Contours( 0 ),
Reverse Colors( rev ),
Transform( "Range Normalized" ),
Specify Contours( Min( 12.5 ), Max( 16.5 ), N( 9 ) )
)
J'ai utilisé l'exemple de table de données Big Class pour mes tests.