지도 배경여러분, 안녕하세요,
여러 이미지가 포함된 폴더가 있습니다. 이미지를 하나씩 드래그하여 지도 배경(그래프 빌더 도구)에 해당 이미지를 배치하면 도착합니다. 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에 따라 다릅니다. 로컬 데이터 필터를 사용하거나 텍스트 편집 상자를 사용하여 고유한 검색 상자를 작성한 다음 예를 들어 목록 상자에서 항목을 표시하는 데 사용할 수 있습니다.
답변: 베이스맵당신의 답변에 감사드립니다.
List Box를 사용해 보았으나 스크립트의 어디에 통합해야 할지 모르겠습니다.
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) " 및 " 아이소메트릭 크기 " 기능을 사용하지만 이는 단일 사진에 대해 작업할 때만 작동합니다. 사진 선택을 수정하자마자 모든 이미지에 대한 기능을 일반화할 수는 없습니다. 그래프 빌더의 배경에는 더 이상 기능이 적용되지 않습니다.
이 문제를 어떻게 해결할 수 있나요?
답변해 주셔서 감사합니다.
답변: 베이스맵어떤 문제가 있는지 정확히 모르겠습니다. 어떤 유형의 이미지를 설정하려고 하시나요? 그래프에서 어떻게 정렬되어야 합니까? 그래프 전체를 채워야 할까요? 구체적인 한계가 있나요?
더보기...
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);