Estimados,
Escribí el siguiente guión. Después de abrir una tabla de datos, toma los datos y crea un gráfico utilizando el generador de gráficos. Luego carga una imagen que tiene el mismo nombre que la tabla de datos abierta y usa esa imagen como fondo para el gráfico.
Para que el script funcione, tuve que agregar al nombre de la tabla de datos la extensión de archivo .png como parte del nombre. Así que tuve que nombrar tanto la imagen como la tabla de datos agregando .png en su nombre (el archivo de imagen tiene la extensión .png).
Por ejemplo, si el nombre de la imagen es sample.png, tuve que cambiarlo a sample.png.png.
Por supuesto que no me gusta esto, pero si no hago este cambio, jmp dice que no puede encontrar el archivo de imagen.
Estoy seguro de que el problema se puede resolver de una manera más limpia.
Muchas gracias por cualquier ayuda.
Names Default To Here(1);
dt=Current Data Table();
gb = dt <<
Graph Builder(
Variables( X( :x ), Y( :y ), Overlay( :track ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"x",
ScaleBox,
{Min( 0 ), Max( 280 ), Inc( 50 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"y",
ScaleBox,
{Min( 0 ), Max( 265 ), Inc( 50 ), Minor Ticks( 1 )}
),
Dispatch( {}, "Graph Builder", FrameBox, {Transparency( 0.05 )} )
)
);
frame = (gb << report)[FrameBox( 1 )];
n = dt << Get Name();
img = newImage(n);
img<<ROTATE></ROTATE>
En Windows, el mensaje Get Name () a una tabla de datos devuelve solo el nombre de la tabla, sin el ".jmp" agregado.
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
Show( dt << get name() );
Tronco:
//:*/
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
Show( dt << get name() );
/*:
dt << get name() = "Big Class";
Por lo tanto, deberá agregar el ".png" para obtener un nombre de archivo completo para Nueva imagen ().
Aquí hay un ejemplo usando Big Class (copiado en su escritorio) y el archivo adjunto Big Class.png aquí.
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 5 ) ), Smoother( X, Y, Legend( 6 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", FrameBox, {Transparency( 0.5 )} ) )
);
frame = (gb << report)[FrameBox( 1 )];
n = dt << Get Name();
img = New Image( "$DESKTOP/" || n || ".png" );
frame << Add Image(
image( img ),
Bounds(
Left( 61.2587412587413 ),
Right( 179.370629370629 ),
Top( 70.8292080975384 ),
Bottom( 48.5033161162993 )
),
SetSize( {799, 620} )
);
NB: En Mac, << Get Name () devuelve el nombre de archivo completo, incluido el .jmp. Por lo tanto, en Mac necesitarás usar Sustituir en () para reemplazar el ".jmp" con ".png".
Names Default To Here( 1 );
dt = Open( "~/Desktop/Big Class.jmp" );
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 5 ) ), Smoother( X, Y, Legend( 6 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", FrameBox, {Transparency( 0.5 )} ) )
);
frame = (gb << report)[FrameBox( 1 )];
n = dt << Get Name();
Substitute Into( n, ".jmp", ".png" );
img = New Image( "~/Desktop/" || n );
//img<<ROTATE></ROTATE>