地图背景大家好,
我有一个包含几张图像的文件夹。 我通过一张一张地拖动图像来将相应的图像放置在地图的背景中(在图形生成器工具中)。 我希望能够使用 JMP 工具(JSL 脚本、列选择器...)以交互方式执行此操作。
也就是说,根据用户的选择并使用上述文件夹的图像来修改底图。
例如,以下是手动拖动图像时地图背景中的图像的样子:

感谢您的帮助 !
数据探索和可视化回复:点菜使用“将图像添加到框架框”应该可以
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)))
);
)
);回复:底图感谢你的回复@jthi 。
一方面,我确实在页面左侧获得了所有不同的图像,我可以在其中选择要选择的图像。
当我选择图像时,收到以下错误消息:

回复:点菜使用 JMP17 时脚本确实对我有用

回复:底图谢谢,它工作正常,我忘记了路径的其余部分。
但是,为了用正确的尺寸很好地表示图像,我必须使用“图像”-->“大小/比例”-->“填充图形”选项。
是否有一个选项可以自动执行此操作,还是我每次都必须手动执行此操作?
感谢你的回复 !
回复:点菜脚本索引通常非常适合查找解决方案(您可以使用与 JMP 菜单相同的关键字或其中的一部分)

回复:底图我使用此脚本来创建图形生成器,我尝试集成“填充图形”选项,但没有任何结论,它无法正常工作。
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 ) )
)}
)
)
);
)
);
回复:点菜设置图像后,您需要引用 PictSeg,然后在其上使用填充图。
回复:底图早上好,
在左侧可供选择的图像列表中,我有很多选择。
是否可以更改显示格式并有一个下拉列表,我们可以在其中搜索要在后台显示的图像?
如下:

谢谢您的回答。
回复:底图取决于您的 UI。您可能能够使用本地数据过滤器,或者您可以编写自己的搜索框(使用文本编辑框),然后可以将其与列表框一起使用以显示项目。
回复:底图感谢你的回复。
我尝试使用列表框,但我不知道将其集成到脚本中的何处
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)))
);
)
);
回复:底图你可以用列表框替换单选框。如果你需要搜索功能,你必须自己编写,因为 ListBox 默认没有该功能
查看更多...
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)))
);
)
);
回复:底图大家好,
使用此脚本,我在图表生成器中获取交互式背景图像。
我希望能够阻止图像并为每个图像制作等距尺寸。
默认情况下,我使用“ lock(1) ”和“ size to isometric ”功能,但这仅在我处理单张照片时有效,一旦我们修改了照片的选择,我就无法概括所有图像的功能图形生成器的背景功能不再有效。
我们该如何解决这个问题呢?
谢谢您的回答。
回复:底图我不太清楚你遇到了什么问题。你想设置什么类型的图像?它们应该如何在图表中对齐?它们应该填满整个图表吗?它们有特定的界限吗?
查看更多...
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);