各位,
我写了以下脚本。 打开数据表后,它将获取数据并使用图形构建器创建图形。 然后,它加载与打开的数据表同名的图片,并将该图片用作图形的背景。
为了使脚本正常工作,我必须在文件名中添加.png文件扩展名。 因此,我必须通过在图片和数据表中添加.png来命名图片和数据表(图片文件的扩展名为.png)。
例如,如果图片的名称为sample.png,则必须将其更改为sample.png.png。
当然我不喜欢这样,但是如果我不做这个改变,jmp说它找不到图片文件。
我相信可以用一种更清洁的方式解决问题。
非常感谢您的帮助。
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>
在Windows上,对数据表的Get Name()消息仅返回表名,而不附加“ .jmp”。
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
Show( dt << get name() );
日志:
//:*/
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
Show( dt << get name() );
/*:
dt << get name() = "Big Class";
因此,您需要附加“ .png”以获得New Image()的完整文件名。
这是使用Big Class(复制到您的桌面)和此处随附的Big Class.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();
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} )
);
注意:在Mac上,<< Get Name()返回整个文件名,包括.jmp。 因此,在Mac上,您需要使用替代成()将“ .jmp”替换为“ .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>