地図の背景こんにちは、みんな、
いくつかの画像が入ったフォルダーがあります。 画像を 1 つずつドラッグして、マップの背景 (グラフ ビルダー ツール内) に対応する画像を配置することで、この画像が表示されます。 JMP ツール (JSL スクリプト、列セレクターなど) を使用してこれを対話的に実行できるようにしたいと考えています。
つまり、ユーザーの選択に従って、言及されたフォルダーの画像を使用してベース マップを変更します。
たとえば、画像を手でドラッグすると、マップの背景にある画像がどのように表示されるかを次に示します。

ご協力いただきありがとうございます !
データの探索と視覚化Re:フォン・デ・カルト「フレームボックスに画像を追加」を使用すると機能するはずです
Names Default To Here(1);
folder_of_interest = Convert File Path("$SAMPLE_IMAGES");
filenames = Files In Directory(folder_of_interest);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
swap_img = Expr(
frame = Report(gb)[FrameBox(1)];
Try(
cur_img = frame << FindSeg(PictSeg(1));
cur_img << Remove;
);
img = New Image(folder_of_interest || cur_file);
frame << Add Image(
Image(img),
bounds(top(90), Left(10), bottom(10), Right(90))
);
);
nw = new window("",
H List Box(
rb = Radio Box(filenames, << Set Function(function({this},
cur_file = (this << get selected);
swap_img;
))),
gb = dt << Graph Builder(
Size(528, 456),
Show Control Panel(0),
Variables(X(:weight), Y(:height)),
Elements(Points(X, Y, Legend(3)))
);
)
);Re: ベースマップお返事ありがとうございます @jthi 。
一方では、ページの左側にさまざまな画像がすべて表示され、どの画像を選択するかを選択できます。
画像を選択すると、次のエラー メッセージが表示されます。

Re:フォン・デ・カルトJMP17を使用するとスクリプトが機能します

Re: ベースマップありがとう、正しく動作します。残りのパスを忘れていました。
ただし、画像を正しい寸法で適切に表現するには、「画像」-->「サイズ/スケール」-->「グラフィックを塗りつぶす」オプションを使用する必要があります。
これを自動的に行うオプションはありますか、それとも毎回手動で行う必要がありますか?
お返事ありがとうございます !
Re:フォン・デ・カルトScripting Index は通常、解決策を見つけるのに非常に優れています (JMP メニューまたはその一部と同じキーワードを使用できます)

Re: ベースマップこのスクリプトを使用してグラフビルダーを使用し、「グラフを塗りつぶす」オプションを統合しようとしましたが、正しく動作しないという決定的なものは何もありませんでした。
Names Default To Here(1);
folder_of_interest = Convert File Path("image");
filenames = Files In Directory(folder_of_interest);
dt = current data table();
swap_img = Expr(
frame = Report(gb)[FrameBox(1)];
Try(
cur_img = frame << FindSeg(PictSeg(1));
cur_img << remove;
wait ( 1 );
cur_img << fill graph;
);
img = New Image(folder_of_interest || cur_file);
frame << Add Image(
Image(img),
bounds(frame << fill graph);
);
);
nw = new window("Image référence vs défauts",
H List Box(
rb = Radio Box(filenames, << Set Function(function({this},
cur_file = (this << get selected);
swap_img;
))),
gb = dt << Graph Builder(
Size( 567, 494 ),
Show Control Panel( 0 ),
Variables( X( :COORDXD ), Y( :COORDYD ) ),
Elements( Points( X, Y, Legend( 6 ) ) ),
Local Data Filter(
Add Filter(
columns( :NUMP, :NUMIMAGE ),
Where( :NUMP == "x" ),
Where( :NUMIMAGE == x ),
Display( :NUMP, N Items( 15 ), Find( Set Text( "" ) ) ),
Display( :NUMIMAGE, N Items( 15 ) )
)
),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
6,
Properties( 0, {Line Color( 51 )}, Item ID( "COORDYD", 1 ) )
)}
)
)
);
)
);
Re:フォン・デ・カルト画像を設定した後、PictSeg への参照が必要になり、その上で塗りつぶしグラフを使用します。
Re: ベースマップおはよう、
左側にある選択する画像のリストには、たくさんの選択肢があります。
表示形式を変更して、背景に表示したい画像を検索できるドロップダウン リストを表示することはできますか?
以下のように:

ご回答ありがとうございます。
Re: ベースマップUI によって異なります。ローカル データ フィルターを使用することも、独自の検索ボックス (テキスト編集ボックスを使用) を作成して、たとえばリスト ボックスで使用して項目を表示することもできます。
Re: ベースマップお返事ありがとうございます。
リストボックスを試してみましたが、スクリプトのどこに組み込むべきかわかりません
Names Default To Here(1);
Clear Log();
folder_of_interest = Convert File Path("$SAMPLE_IMAGES");
filenames = Files In Directory(folder_of_interest);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
swap_img = Expr(
frame = Report(gb)[FrameBox(1)];
Try(
cur_img = frame << FindSeg(PictSeg(1));
cur_img << Remove;
);
img = New Image(folder_of_interest || cur_file);
frame << Add Image(
Image(img),
bounds(top(90), Left(10), bottom(10), Right(90))
);
);
nw = new window("",
H List Box(
rb = Radio Box(filenames, << Set Function(function({this},
cur_file = (this << get selected);
swap_img;
))),
gb = dt << Graph Builder(
Size(528, 456),
Show Control Panel(0),
Variables(X(:weight), Y(:height)),
Elements(Points(X, Y, Legend(3)))
);
)
);
Re: ベースマップラジオボックスをリストボックスに置き換えます。検索機能が必要な場合は、リストボックスにはデフォルトでこの機能がないため、自分で作成する必要があります。
もっと見る...
Names Default To Here(1);
Clear Log();
folder_of_interest = Convert File Path("$SAMPLE_IMAGES");
filenames = Files In Directory(folder_of_interest);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
swap_img = Expr(
frame = Report(gb)[FrameBox(1)];
Try(
cur_img = frame << FindSeg(PictSeg(1));
cur_img << Remove;
);
img = New Image(folder_of_interest || cur_file);
frame << Add Image(
Image(img)
);
seg = frame << FindSeg(PictSeg(1));
seg << fill graph;
seg << Lock(1);
);
nw = new window("",
H List Box(
rb = List Box(filenames, << Set Max Selected(1), << Set Function(function({this},
cur_file = (this << get selected)[1];
swap_img;
))),
gb = dt << Graph Builder(
Size(528, 456),
Show Control Panel(0),
Variables(X(:weight), Y(:height)),
Elements(Points(X, Y, Legend(3)))
);
)
);
Re: ベースマップこんにちは、みんな、
このスクリプトを使用して、グラフ ビルダーでインタラクティブな背景画像を取得します。
画像をブロックして、各画像を等角サイズにできるようにしたいと考えています。
私はデフォルトで「 lock(1) 」関数と「 size to isometric 」関数を使用しますが、これは 1 枚の写真を処理する場合にのみ機能します。写真の選択を変更するとすぐに、すべての画像に対して関数を一般化することはできません。グラフ ビルダーの背景では、関数の効果はなくなりました。
この問題はどうすれば解決できるでしょうか?
ご回答ありがとうございます。
Re: ベースマップどのような問題を抱えているのか、よくわかりません。どのような種類の画像を設定しようとしていますか? グラフ内で画像をどのように配置すればよいですか? グラフ全体を埋める必要がありますか? 特定の境界がありますか?
もっと見る...
Names Default To Here(1);
Clear Log();
folder_of_interest = Convert File Path("$SAMPLE_IMAGES");
filenames = Files In Directory(folder_of_interest);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
swap_img = Expr(
Try(
cur_img = frame << FindSeg(PictSeg(1));
cur_img << Remove;
);
img = New Image(folder_of_interest || cur_file);
frame << Add Image(
Image(img)
);
seg = frame << FindSeg(PictSeg(1));
seg << fill graph;
// seg << bounds(Left(0), Right(100), top(100), bottom(0));
// {l, r, t, b} = seg << getBounds;
seg << Lock(1);
);
nw = new window("",
H List Box(
rb = List Box(filenames, << Set Max Selected(1), << Set Function(function({this},
cur_file = (this << get selected)[1];
swap_img;
))),
gb = dt << Graph Builder(
Size(528, 456),
Show Control Panel(0),
Variables(X(:weight), Y(:height)),
Elements(Points(X, Y, Legend(3)))
);
)
);
frame = Report(gb)[FrameBox(1)];
frame << Size to Isometric(1);