Comment modifier une image d'arrière-plan en fonction d'une sélection dans un filtre de données?Je cherche à créer une carte interactive de mon immeuble pour trouver des salles de conférence. J'ai créé une table avec les noms des salles de conférence et leur ai donné une coordonnée x et y. J'ai créé une analyse "Ajuster Y par X", fait glisser une image de mon plan en arrière-plan et ajouté un filtre de données pour les noms de pièce. Cliquez sur un nom de salle pour afficher les coordonnées x et y sur la carte. Cela fonctionne parfaitement, sauf que mon bâtiment a plusieurs étages. J'ai ajouté une colonne à mon tableau avec plancher et j'aimerais maintenant faire la même chose, sauf que le plan d'étage correct soit basé sur le filtre de données. Des idées? Une explication interactive serait la meilleure.
Re: Comment modifier une image d'arrière-plan en fonction d'une sélection dans un filtre de données?Merci encore. Vous avez raison sur les deux points. Si proche !!! Je vais faire un peu de travail en apprenant le complément des formes de carte et voir ce que je peux y accomplir. Si vous avez d'autres idées susceptibles de fonctionner en HTML, merci de me le faire savoir.
Re: Comment modifier une image d'arrière-plan en fonction d'une sélection dans un filtre de données?Si je comprends bien, vous n'avez pas besoin de deux filtres de données. Il suffit d'utiliser:
df = biv << Local Data Filter( Add Filter( columns( :name) ));
et remplacez toutes les instances de 'FrameBox (2)' par 'FrameBox (1)'.
Mais je crains que vous ne soyez déçu - 'MakeFilterChangeHandler ()' fait tout le travail et (bien que je n'ai pas vérifié), je doute que cela fonctionne si vous déplacez le rapport en HTML.
Re: Comment modifier une image d'arrière-plan en fonction d'une sélection dans un filtre de données?Merci beaucoup. Cela a fonctionné et a vraiment de l'espoir pour moi. En fonction de l'ensemble de données que vous avez utilisé, ce que je voulais réellement faire, c'était filtrer par un nom et faire changer l'image en fonction du sexe. J'ai compris comment faire cela en ajoutant deux filtres de données, ce qui me satisfait. JMP et les scripts sont nouveaux pour moi; si j'ai copié votre script et que vous avez réussi à ouvrir les exemples d'images, je ne sais pas quelle est la syntaxe appropriée pour ouvrir une image différente. Enfin, je veux enregistrer ceci en tant que HTML afin qu'il puisse être utilisé par n'importe qui. Est-ce que cela change la manière dont les différentes images doivent être traitées?
Re: Comment modifier une image d'arrière-plan en fonction d'une sélection dans un filtre de données?Cela montre les mécanismes d'une façon de le faire. C'est un peu indirect car (sauf si je l'ai manqué) il n'y a aucun moyen d'obtenir l'état de sélection actuel du filtre de données local. Donc, cela le déduit des lignes filtrées.
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 );
Re: Comment modifier une image d'arrière-plan en fonction d'une sélection dans un filtre de données?salut @ fowled1 , bienvenue dans la communauté!
Je crois que ce que vous essayez de faire prendrait un bon bout de script, mais cela ressemble à un défi amusant. Si ce n'est pas trop demander, pouvez-vous publier ce avec quoi vous travaillez?