Die Schriftfarbe ändert sich beim Drehen eines FlächendiagrammsIch habe ein Oberflächendiagramm unter Verwendung einer vorhergesagten Formel aus einem endgültigen Screening-Design erstellt.
Ich möchte meine Handlung in einer Präsentation mit rotierender Handlung präsentieren. Dazu bin ich diesem Thread gefolgt: https://community.jmp.com/t5/Discussions/Spinning-a-Scatterplot-3D/td-p/6510
Der Rat hier war ursprünglich für ein Streudiagramm, aber ich habe es mit derselben Codezeile zum Laufen gebracht:
Set Spin( 0.01, 0, 0.01, 0 )
Das Drehen funktioniert einwandfrei, aber wenn sich der Plot dreht, ändern sich die Schriftfarben von Schwarz zu einem feinen Grau, wodurch sie schwieriger zu lesen sind:
Während des Spinnens
Im Stillstand
Weiß jemand, was dies verursacht / ob ich etwas tun kann, um das Problem zu beheben? Oder vielleicht eine andere Art, das Oberflächendiagramm zu drehen, die nicht zu diesem Problem führt?
Vielen Dank
GrafikSkriptingBetreff: Die Schriftfarbe ändert sich beim Drehen eines OberflächendiagrammsBeeindruckend! Das ist ein wirklich schönes Bild!
Ich bekomme das gleiche Verhalten, wenn ich Set Spin () verwende. Aber nicht, wenn ich das Diagramm manuell durch Klicken und Ziehen drehe.
Ich bin nicht sicher, was dies verursacht oder ob es eine Möglichkeit gibt, es zu beheben. Möglicherweise möchten Sie den technischen Support kontaktieren ( support@jmp.com ). Ich habe unten ein Beispielskript eingefügt, das das Problem demonstriert, über das Sie bei der Verwendung von Tiretread-Beispieldaten sprechen.
Ansonsten können Sie einfach Ihre manuelle Drehung des Plots auf dem Bildschirm aufzeichnen.
Grüße,
Phil
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = Surface Plot(
Columns( :Pred Formula ABRASION ),
Control Panel( 0 ),
Surface Color Theme( "Green to Black to Red" ),
Surface Color Theme2( "Green to White to Red" ),
Surface Color Theme3( "White to Black" ),
Surface Color Theme4( "Blue to Gray to Red" ),
Response Column Color Theme( "Blue to Green to Red" ),
Response Column Color Theme2( "Blue to Gray to Orange" ),
Response Column Color Theme3( "Spectral" ),
Response Column Color Theme4( "Jet" ),
Formula( "Pred Formula ABRASION" ),
Surface Color Method( "Solid", "Solid", "Solid", "Solid" ),
SetVariableAxis( :SILICA, Axis Data( {} ) ),
SetVariableAxis( :SILANE, Axis Data( {} ) ),
SetZAxis( :Pred Formula ABRASION, Current Value( 125 ), Axis Data( {} ) ),
SetXVariable( :SILICA ),
SetYVariable( :SILANE ),
Iso Value( 0, 139.119238722664 ),
Frame3D(
Set Graph Size( 470, 470 ),
Set Grab Handles( 0 ),
Set Hide Lights Border( 1 ),
Set Rotation( -66.7809360215981, 3.32558351899253, 44.6221502352661 )
)
);
obj << Frame3D( Set Spin( 0.1, 0, 0.01, 0 ) );Betreff: Die Schriftfarbe ändert sich beim Drehen eines OberflächendiagrammsEs wird absichtlich gedimmt, um den Text weniger abzulenken. Die beschrifteten Achsen schalten bereits um, um dem Diagramm aus dem Weg zu gehen, und waren bei festem Schwarz schwer zu beobachten. Mir ist keine Möglichkeit bekannt, die Funktion zu deaktivieren. Um Phils Vorschlag zu erweitern, können Sie die Frame3D << setRotation-Methode skripten und Bilder aufnehmen.@ Davidbarbour
(Oder es ist schnell genug, dass Sie das Skript einfach ausführen, ohne die Bilder zu erfassen.)
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = Surface Plot(
Columns( :Pred Formula ABRASION ),
Control Panel( 0 ),
Surface Color Theme( "Green to Black to Red" ),
Surface Color Theme2( "Green to White to Red" ),
Surface Color Theme3( "White to Black" ),
Surface Color Theme4( "Blue to Gray to Red" ),
Response Column Color Theme( "Blue to Green to Red" ),
Response Column Color Theme2( "Blue to Gray to Orange" ),
Response Column Color Theme3( "Spectral" ),
Response Column Color Theme4( "Jet" ),
Formula( "Pred Formula ABRASION" ),
Surface Color Method( "Solid", "Solid", "Solid", "Solid" ),
SetVariableAxis( :SILICA, Axis Data( {} ) ),
SetVariableAxis( :SILANE, Axis Data( {} ) ),
SetZAxis( :Pred Formula ABRASION, Current Value( 125 ), Axis Data( {} ) ),
SetXVariable( :SILICA ),
SetYVariable( :SILANE ),
Iso Value( 0, 139.119238722664 ),
Frame3D(
Set Graph Size( 470, 470 ),
Set Grab Handles( 0 ),
Set Hide Lights Border( 1 ),
//Set Rotation( 10, 20, 30 )
)
);
//oscillate using cosine
ipic=0;
For( n = 1, n <= 3, n += 1,
For( i = 0, i < 1, i += 1 / 32,
delta = 5 * Cos( 2 * Pi() * i ); // 5 * (1..-1..1)
obj << frame3d( setrotation( 10 + delta, 20 + delta, 30 + delta ) );
obj << updatewindow;
Wait( 0 );
// take picture here if wanted
//img = report(obj)[SceneBox(1)]<<GETPICTURE></GETPICTURE>
oszillierende 3D-Oberfläche
Ich habe Gifsicle verwendet, um das animierte Gif zu erstellen. Es gibt viele Möglichkeiten, die Bildsequenz in ein animiertes GIF oder Video umzuwandeln.
gifsicle -O3 -d 10 --loop = 0 surf * .gif> osc.gif