El color de la fuente cambia al girar un gráfico de superficieProduje un gráfico de superficie usando una fórmula predicha de un diseño de tramado definitivo.
Me gustaría presentar mi trama en una presentación con la trama rotando. Para hacerlo, seguí este hilo: https://community.jmp.com/t5/Discussions/Spinning-a-Scatterplot-3D/td-p/6510
El consejo aquí fue originalmente para un diagrama de dispersión, sin embargo, lo hice funcionar usando la misma línea de código:
Set Spin( 0.01, 0, 0.01, 0 )
El giro funciona bien, sin embargo, cuando la trama gira, los colores de la fuente cambian de negro a un gris fino, lo que los hace más difíciles de leer:
Mientras gira
Mientras está parado
¿Alguien sabe qué está causando esto / si hay algo que pueda hacer para solucionar el problema? ¿O quizás una forma diferente de hacer girar la trama de superficie que no dé lugar a este problema?
Gracias
GráficosScriptingRe: el color de la fuente cambia al girar un gráfico de superficie¡Guauu! ¡Esa es una imagen realmente hermosa!
Obtengo el mismo comportamiento cuando uso Set Spin (). Pero no cuando giro manualmente el gráfico con hacer clic y arrastrar.
No estoy seguro de qué causa esto o si hay una manera de solucionarlo. Es posible que desee ponerse en contacto con el soporte técnico ( support@jmp.com ). He pegado un script de ejemplo, a continuación, que demuestra el problema del que está hablando utilizando datos de ejemplo de Tiretread.
Aparte de eso, podría simplemente grabar en pantalla su rotación manual de la trama.
Saludos,
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: el color de la fuente cambia al girar un gráfico de superficieSe atenúa a propósito para que el texto distraiga menos. Los ejes etiquetados ya están cambiando para mantenerse fuera del camino del gráfico y eran difíciles de ver cuando estaban en negro sólido. No conozco ninguna forma de desactivar la función. Para ampliar la sugerencia de Phil, puede escribir el método Frame3D << setRotation y capturar imágenes.@davidbarbour
(O bien, es lo suficientemente rápido como para ejecutar el script sin capturar las imágenes).
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>
superficie 3D oscilante
Usé gifsicle para hacer el gif animado; Hay muchas formas de convertir la secuencia de imágenes en un gif animado o un video.
gifsicle -O3 -d 10 --loop = 0 surf * .gif> osc.gif