Farben in der Contour Plot-Plattform umkehrenIch habe ein Skript, das mehrere Spalten durchläuft und Konturdiagramme generiert.
Wenn die Spaltenwerte negativ sind, möchte ich die Konturfarben umkehren, also lege ich eine Variable wie diese fest:
if(col mean( col1 ) < 0, revcols = 1, revcols = 0);
Contour Plot(
...
Reverse Colors( revcols ),
...
Das Problem, das ich habe, ist jedoch, dass das Konturdiagramm jetzt immer umgekehrt ist – es scheint den Wert von revcols zu ignorieren.
Wenn ich fest codiere
Reverse Colors( 0 )
dann werden die Farben nicht umgekehrt, aber wenn revcols = 0, dann ist es umgekehrt.
Muss ich etwas Schlaues tun, damit in diesem Fall eine Variable mit dem Wert 0 als Null behandelt wird?
Danke!
Betreff: Farben in der Contour Plot-Plattform umkehrenHier ist eine Lösung, die auf meinem System funktioniert
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("")))
);Betreff: Farben in der Contour Plot-Plattform umkehrenDanke für den Vorschlag, aber immer noch kein Glück. Ich habe Folgendes versucht:
// 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
)
);Allerdings wurde die Tabelle immer noch mit umgekehrten Farben ausgegeben. Wenn ich das Skript aus dem Diagramm speichere, erhalte ich Folgendes:
// 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" )}
)
)
);Wie Sie sehen können, wurde der Wert von __reverse__ korrekt in den Titeltext eingesetzt, aber aus irgendeinem Grund bekomme ich immer noch die Meldung
Reverse Colors( 1 )
Ist das ein Fehler und gibt es einen Workaround?
Vielen Dank für Ihre Hilfe!
Betreff: Farben in der Contour Plot-Plattform umkehrenVersuchen Sie, Ihren Code in eine Substitute-Struktur zu konvertieren, die JMP den Wert von rev so präsentiert, als ob er fest codiert wäre.
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
)
);Betreff: Farben in der Contour Plot-Plattform umkehrenDanke für deine Antwort! Ich verwende JMP 14.2.0 unter MacOS 10.14.6.
Ich habe Ihr Skript ausprobiert, sehe aber immer noch das gleiche Problem. Ich habe dies zum Skript hinzugefügt, damit ich sicher war, dass ich die richtige Ausgabe erhalte:
SendToReport(
Dispatch( {}, "Contour Plot for age", OutlineBox, {Set Title( "Contour Plot for age, with rev = " || Char( rev ) )} )
)Und die Diagramme sehen so aus (ich habe auch die Konturen ausgefüllt, um es deutlicher zu machen):


Wie zuvor, wenn ich fest codiere
Reverse Colors( 0 )
Dann bekomme ich das (was richtig ist):

Hoffe das hilft. Danke!
Betreff: Farben in der Contour Plot-Plattform umkehrenIch habe das folgende Skript in JMP 12 und JMP 15 ausgeführt und beide haben ohne Fehler funktioniert.Wenn Sie weitere Details angeben können, kann ich das Problem möglicherweise lösen.
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 ) )
)
Für meine Tests habe ich die Beispieldatentabelle „Big Class“ verwendet.