親愛なる皆さん、
次のスクリプトを書きました。 データテーブルを開いた後、データを取得し、グラフビルダーを使用してグラフを作成します。 次に、開いたデータテーブルと同じ名前の画像を読み込み、その画像をグラフの背景として使用します。
スクリプトを機能させるには、名前の一部としてファイル拡張子.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";
したがって、New Image()の完全なファイル名を取得するには、「。png」を追加する必要があります。
これは、Big Class(デスクトップにコピー)と添付のBigClass.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では使用する必要がありますInto()に置き換えます「.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>