KartenhintergrundHallo zusammen,
Ich habe einen Ordner mit mehreren Bildern. Ich komme dazu, indem ich die Bilder einzeln ziehe, um das entsprechende Bild im Hintergrund der Karte zu platzieren (im Diagrammerstellungstool). Ich möchte dies interaktiv mit einem JMP-Tool (JSL-Skript, Spaltenauswahl ...) tun können.
Das heißt, ändern Sie die Basiskarte nach Wunsch des Benutzers und mit den Bildern des genannten Ordners.
So sieht beispielsweise ein Bild im Hintergrund der Karte aus, wenn man das Bild per Hand zieht:

Vielen Dank für Ihre Hilfe !
Datenexploration und -visualisierungBetreff: Fond de carteDie Verwendung von „Bild zur Framebox hinzufügen“ sollte funktionieren
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)))
);
)
);Betreff: BasiskarteDanke für Ihre Antwort @jthi .
Einerseits werden mir alle verschiedenen Bilder auf der linken Seite angezeigt, wo ich auswählen kann, welches ich auswählen möchte.
Wenn ich ein Bild auswähle, erhalte ich die folgende Fehlermeldung:

Betreff: Fond de carteDas Skript funktioniert bei mir, wenn ich JMP17 verwende

Betreff: BasiskarteDanke, es funktioniert korrekt, den Rest des Pfades hatte ich vergessen.
Damit das Bild jedoch gut und mit den richtigen Abmessungen dargestellt wird, muss ich die Option „Bild“ -> „Größe/Skalierung“ -> „Grafik füllen“ verwenden.
Gibt es eine Option, dies automatisch zu tun, oder muss ich es jedes Mal manuell tun?
Danke für Ihre Antwort !
Betreff: Fond de carteDer Scripting-Index ist normalerweise ziemlich gut darin, Lösungen zu finden (Sie können dasselbe Schlüsselwort wie das JMP-Menü oder Teile davon verwenden).

Betreff: BasiskarteIch verwende dieses Skript, um den Graph Builder zu haben. Ich habe versucht, die Option „Graph füllen“ zu integrieren, aber nichts schlüssiges, es funktioniert nicht richtig.
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 ) )
)}
)
)
);
)
);
Betreff: Fond de carteSie benötigen den Verweis auf PictSeg, nachdem das Bild festgelegt wurde, und verwenden dann das Fülldiagramm dafür.
Betreff: GrundkarteGuten Morgen,
In der Liste der auszuwählenden Bilder auf der linken Seite habe ich eine große Auswahl.
Ist es möglich, das Anzeigeformat zu ändern und eine Dropdown-Liste einzurichten, in der wir nach den Bildern suchen können, die im Hintergrund angezeigt werden sollen?
Wie nachstehend:

Danke für deine Antworten.
Betreff: GrundkarteHängt von Ihrer Benutzeroberfläche ab. Möglicherweise können Sie einen lokalen Datenfilter verwenden oder Ihr eigenes Suchfeld schreiben (mithilfe des Textbearbeitungsfelds), das dann beispielsweise mit einem Listenfeld verwendet werden kann, um die Elemente anzuzeigen.
Betreff: GrundkarteDanke für Ihre Antwort.
Ich habe es mit List Box versucht, weiß aber nicht, wo ich es in das Skript integrieren soll
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)))
);
)
);
Betreff: GrundkarteSie würden Radio Box durch List Box ersetzen. Wenn Sie eine Suchfunktion benötigen, müssen Sie diese selbst schreiben, da ListBox diese standardmäßig nicht hat
Mehr sehen...
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)))
);
)
);
Betreff: GrundkarteHallo zusammen,
Mit diesem Skript erhalte ich interaktive Hintergrundbilder im Chart Builder.
Ich möchte die Bilder blockieren und für jedes Bild die isometrische Größe festlegen können.
Ich verwende standardmäßig die Funktionen „ lock(1) “ und „ Size to isometric “, aber das funktioniert nur, wenn ich an einem einzelnen Foto arbeite. Ich kann die Funktionen nicht für alle Bilder verallgemeinern, sobald wir die Auswahl des Fotos ändern Im Hintergrund des Graph Builders haben die Funktionen keine Wirkung mehr.
Wie können wir dieses Problem lösen?
Danke für deine Antworten.
Betreff: GrundkarteIch bin mir nicht ganz sicher, welches Problem Sie haben. Welche Art von Bildern versuchen Sie einzustellen? Wie sollen sie in Ihrem Diagramm ausgerichtet sein? Sollen sie das gesamte Diagramm ausfüllen? Haben sie bestimmte Grenzen?
Mehr sehen...
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);