Wie ändere ich ein Hintergrundbild basierend auf der Auswahl in einem Datenfilter?Ich versuche, eine interaktive Karte meines Gebäudes zu erstellen, um Konferenzräume zu finden. Ich erstellte eine Tabelle mit Konferenzraumnamen und gab jeweils eine X- und Y-Koordinate an. Ich erstellte eine "Fit Y nach X" -Analyse, zog ein Bild meines Grundrisses in den Hintergrund und fügte einen Datenfilter für Raumnamen hinzu. Klicken Sie auf einen Raumnamen und die X- und Y-Koordinaten werden auf der Karte angezeigt. Es funktioniert einwandfrei, außer dass mein Gebäude mehrere Etagen hat. Ich habe meiner Tabelle eine Spalte mit Fußboden hinzugefügt, und jetzt möchte ich dasselbe tun, außer den korrekten Grundriss basierend auf dem Datenfilter anzuzeigen. Irgendwelche Ideen? Eine interaktive Erklärung wäre am besten.
Betreff: Wie ändere ich ein Hintergrundbild basierend auf der Auswahl in einem Datenfilter?Danke noch einmal. Sie sind in beiden Punkten richtig. So nah!!! Ich werde ein wenig arbeiten, um das Map-Shape-Add-In zu lernen und zu sehen, was ich dort erreichen kann. Wenn Sie andere Ideen haben, die in HTML funktionieren könnten, lassen Sie es mich wissen.
Betreff: Wie ändere ich ein Hintergrundbild basierend auf der Auswahl in einem Datenfilter?Wenn ich es richtig verstanden habe, brauchen Sie keine zwei Datenfilter. Benutz einfach:
df = biv << Local Data Filter( Add Filter( columns( :name) ));
und ändern Sie alle Instanzen von 'FrameBox (2)' in 'FrameBox (1)'.
Aber ich fürchte, Sie könnten enttäuscht sein - "MakeFilterChangeHandler ()" erledigt die ganze Arbeit, und (obwohl ich es nicht überprüft habe) bezweifle ich, dass dies funktionieren wird, wenn Sie den Bericht in HTML verschieben.
Betreff: Wie ändere ich ein Hintergrundbild basierend auf der Auswahl in einem Datenfilter?Ich danke dir sehr. Das hat funktioniert und hat mich wirklich hoffnungsvoll gemacht. Basierend auf dem von Ihnen verwendeten Datensatz wollte ich eigentlich nach einem Namen filtern und das Bild je nach Geschlecht ändern. Ich habe herausgefunden, wie ich dies tun kann, indem ich zwei Datenfilter hinzufüge, damit bin ich zufrieden. Ich bin neu bei JMP und beim Scripting. Während ich also Ihr Skript kopiert habe und es beim Öffnen der Beispielbilder geklappt hat, weiß ich nicht, was die richtige Syntax ist, um ein anderes Bild zu öffnen. Zum Schluss möchte ich das als HTML speichern, damit es von jedermann verwendet werden kann. Ändert das, wie die verschiedenen Bilder behandelt werden müssen?
Betreff: Wie ändere ich ein Hintergrundbild basierend auf der Auswahl in einem Datenfilter?Dies zeigt die Mechanismen einer Möglichkeit, dies zu tun. Es ist ein wenig indirekt, da (wenn ich es nicht übersehen habe) es keine Möglichkeit gibt, den aktuellen Auswahlstatus des lokalen Datenfilters abzurufen. Das führt also zu den gefilterten Zeilen.
NamesDefaultToHere(1);
// Open a table and do Bivariate
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate(X(:height), Y(:weight));
// Add a local data filter (:sex plays the role of floor . . . )
df = biv << Local Data Filter( Add Filter( columns( :sex ) ));
// Get the title of the window
win = (biv << Report) << GetWindowTitle;
// Define a function that will update the background image on the Bivariate plot
f = Function( {a},
// Infer what value of :sex is currenly selected in the data filter
levRows = df << getFilteredRows;
lev = Column(dt, "sex")[levRows];
lev = lev[1];
Speak(lev);
// (Try to) remove an image that might already be there
Try(
imgSeg = Window(win)[FrameBox(2)] << FindSeg( PictSeg( 1 ) );
imgSeg << Remove;
);
// Add the 'corresponding' image
if(
lev == "M",
Window(win)[FrameBox(2)] << Add Image(Open("$SAMPLE_IMAGES/tile.jpg"), FillGraph),
lev == "F",
Window(win)[FrameBox(2)] << Add Image(Open("$SAMPLE_IMAGES/progress.gif"), FillGraph)
);
);
// Add a handler to the data filter so that when the user makes a selection the function 'f' is called
rs = df << Make Filter Change Handler( f );
Betreff: Wie ändere ich ein Hintergrundbild basierend auf der Auswahl in einem Datenfilter?Hallo @ fowled1 Willkommen in der Community!
Ich glaube, das, was Sie versuchen, würde einiges an Scripting erfordern, aber es hört sich nach einer lustigen Herausforderung an. Wenn es nicht zu viel verlangt, können Sie posten, womit Sie arbeiten?