La couleur de la police change lors de la rotation d'un tracé de surfaceJ'ai produit un tracé de surface en utilisant une formule prédite à partir d'une conception de criblage définitive.
Je voudrais présenter mon intrigue dans une présentation avec l'intrigue en rotation. Pour ce faire, j'ai suivi ce fil: https://community.jmp.com/t5/Discussions/Spinning-a-Scatterplot-3D/td-p/6510
Le conseil ici était à l'origine pour un nuage de points, mais je l'ai fait fonctionner en utilisant la même ligne de code:
Set Spin( 0.01, 0, 0.01, 0 )
La rotation fonctionne bien, mais lorsque le tracé tourne, les couleurs de la police passent du noir au gris feinte, ce qui les rend plus difficiles à lire:
En tournant
À l'arrêt
Quelqu'un sait-il ce qui cause cela / si je peux faire quelque chose pour résoudre le problème? Ou peut-être une façon différente de faire tourner le tracé de surface qui n'entraîne pas ce problème?
Merci
GraphiqueScriptingRe: La couleur de la police change lors de la rotation d'un tracé de surfaceHou la la! C'est un très beau visuel!
J'obtiens le même comportement lorsque j'utilise Set Spin (). Mais pas lorsque je fais pivoter manuellement le tracé en cliquant et en faisant glisser.
Je ne sais pas ce qui cause cela ou s'il existe un moyen de le réparer. Vous voudrez peut-être contacter le support technique ( support@jmp.com ). J'ai collé un exemple de script, ci-dessous, qui montre le problème dont vous parlez en utilisant les données d'exemple Tiretread.
En dehors de cela, vous pouvez simplement enregistrer à l'écran votre rotation manuelle du tracé.
Cordialement,
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 ) );Re: La couleur de la police change lors de la rotation d'un tracé de surfaceIl s'assombrit volontairement pour rendre le texte moins distrayant. Les axes étiquetés basculent déjà sur le point de rester à l'écart du graphique et étaient difficiles à regarder lorsqu'ils étaient noirs. Je ne connais aucun moyen de désactiver la fonctionnalité. Pour étendre la suggestion de Phil, vous pouvez écrire la méthode Frame3D << setRotation et capturer des images.@davidbarbour
(Ou, c'est assez rapide, vous pouvez simplement exécuter le script sans capturer les images.)
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>
surface 3D oscillante
J'ai utilisé un gificle pour créer le gif animé; il existe de nombreuses façons de transformer la séquence d'images en un gif animé ou une vidéo.
gifsicle -O3 -d 10 --loop = 0 surf * .gif> osc.gif