Afficher l'image PNG à partir de l'URL dans une carte de plaquetteBonjour,
Je voudrais voir une carte de plaquette à partir d'un fichier CSV... ok

mais je remplacerais chaque carré par une image PNG issue d'URL définie dans le même fichier CSV...
Avez-vous des idées comment faire ???
Modélisation statistique avancéeÉtudes de consommation et de marchéAccès aux donnéesExploration et visualisation des donnéesRe : Afficher l'image PNG depuis l'URL dans une carte de plaquetteSalut John,
Merci beaucoup !! Superbe !!
Merci beaucoup Jthi, pour votre aide et votre solution pour JMP > v16
Solution pour JMP v15 ci-dessous
Joyeux noël
Xavier

ScriptJMP V15 :
// JMP V15
Names Default To Here(1);
dt = Open(
"$DOWNLOADS/pokemons/Wafermap_pokemon.csv",
Import Settings(
End Of Line(CRLF, CR, LF),
End Of Field(Comma, CSV(1)),
Strip Quotes(0),
Use Apostrophe as Quotation Mark(0),
Use Regional Settings(0),
Scan Whole File(1),
Treat empty columns as numeric(0),
CompressNumericColumns(0),
CompressCharacterColumns(0),
CompressAllowListCheck(0),
Labels(1),
Column Names Start(1),
Data Starts(2),
Lines To Read("All"),
Year Rule("20xx")
)
);
dt:XCoord << Data type(Numeric) << Set Modeling Type(Ordinal);
dt:YCoord << Data type(Numeric) << Set Modeling Type(Ordinal);
// reduce Filename to only filename OR use full filepath and modify Images column's formula
dt:Filename << Set Each Value(Word(-1, :Filename, "\"));
Show(Get Default Directory());
// This can be modified to get borders and so on if needfed
dt << New Column("Images", Expression, None, << Set Each Value(
Open(Get Default Directory() ||"images/" || :Filename, png);
));
:Images << Set Use For Marker;
gb = dt << Graph Builder(
Size( 522, 451 ),
Show Control Panel( 0 ),
Variables( X( :XCoord ), Y( :YCoord ) ),
Elements( Points( X, Y, Legend( 1 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Marker Size( 15 ), Marker Drawing Mode( "Normal" )}
)
)
);Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteSalut @BiX ,
L'exemple que j'ai montré était destiné à être utilisé avec l'exemple d'ensemble de données Big Class Families.jmp. « taille », « poids » et « image » sont des colonnes de cet ensemble de données, mais ne figurent pas dans le tableau que vous créez dans votre script.
Pour utiliser « Définir l'utilisation du marqueur » dans votre script, vous devez envoyer le message « Définir l'utilisation du marqueur » à la colonne « Images » que vous créez dans votre script avant la fonction Graph Builder.
Pour ce faire, remplacez tout ce qui commence par « hauteur = 20 ; » pour finir par ce qui suit :
:Images << Set Use For Marker;
gb = dt << Graph Builder(
Size( 522, 451 ),
Show Control Panel( 0 ),
Variables( X( :XCoord ), Y( :YCoord ) ),
Elements( Points( X, Y, Legend( 1 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Marker Size( 15 ), Marker Drawing Mode( "Normal" )}
)
)
);
Notez que j'ai rajouté le code SendToReport pour définir la taille du marqueur sur 15 que vous aviez plus tôt dans cet article.Si vous modifiez la taille du graphique, vous souhaiterez peut-être également modifier la taille du marqueur.
S'il vous plaît laissez-nous savoir comment cela fonctionne pour vous.
Merci,
~Jean
Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteMerci Jean,
J'essaye de mettre en place ta proposition à l'intérieur du script de Jthi sans succès...
S'il vous plait, pourriez-vous me proposer votre mise à jour ?
rgds
"
Noms par défaut ici (1);
dt = Ouvert(
"$DOWNLOADS/pokemons/Wafermap_pokemon.csv",
Importer les configurations(
Fin de ligne (CRLF, CR, LF),
Fin de champ (virgule, CSV (1)),
Citations de bande(0),
Utilisez l'apostrophe comme guillemet (0),
Utiliser les paramètres régionaux (0),
Numériser le fichier entier (1),
Traitez les colonnes vides comme numériques (0),
Compresser les colonnes numériques (0),
Compresser les colonnes de caractères (0),
CompressAllowListCheck(0),
Etiquettes(1),
Noms de colonnes Début(1),
Début des données(2),
Lignes à lire("Tout"),
Règle de l'année ("20xx")
)
);
dt:XCoord << Type de données (numérique) << Définir le type de modélisation (ordinal) ;
dt:YCoord << Type de données (numérique) << Définir le type de modélisation (ordinal) ;
// réduit le nom de fichier au nom de fichier uniquement OU utilise le chemin de fichier complet et modifie la formule de la colonne Images
dt:Filename << Définir chaque valeur (Word(-1, :Filename, "\"));
Show(Obtenir le répertoire par défaut());
// Ceci peut être modifié pour obtenir des bordures et ainsi de suite si nécessaire
dt << Nouvelle colonne ("Images", Expression, Aucune, << Définir chaque valeur (
Ouvrir(Obtenir le répertoire par défaut() ||"images/" || :Nom du fichier, png);
));
hauteur = 20 ;
poids = 20 ;
gb = dt << Générateur de graphiques (
Taille (522, 451),
Afficher le panneau de configuration (0),
Variables(X(:XCoord), Y(:YCoord)),
:Images << Définir l'utilisation du marqueur ;
Bivarié( Y(:hauteur),X(:poids) );
Bivarié[]
);
"
Re : Afficher l'image PNG depuis l'URL dans une carte de plaquette@jthi a une bonne suggestion.Set Use for Marker a été implémenté dans JMP 14 selon l'index de script :

Lorsque vous utilisez une fonction pour la première fois, il est conseillé de la rechercher dans l'index des scripts sous le menu Aide.
Vous souhaiterez peut-être également activer le journal intégré dans l'éditeur de script (clic droit > Afficher le journal intégré) afin de pouvoir voir les erreurs lorsque vous exécutez votre script.

J'espère que cela t'aides,
~Jean
Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteJe ne sais pas quand il a été implémenté (j'utilise JMP16). Vous pouvez essayer d'utiliser la colonne Images comme colonne Marqueur que j'ai suggérée dans mon premier message de ce fil. J'espère que cela fonctionnera (vous devrez supprimer cette partie du générateur de graphiques dans ce cas, je pense).
Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteSalut Jthi,
Merci encore.
Désolé, j'ai toujours des images de points ou de cercles au lieu d'images Pokémon.
Je soupçonne que la commande "Set Shape Column(:Images))" n'est pas fonctionnelle de mon côté ? (en V15.0.0 ou V15.2.1)

Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteLe générateur de graphiques peut être tracé à partir d'une mauvaise table de données. Basé sur les noms de fenêtres : le générateur de graphiques utilise la table Wafermap_pokemon_2 et la table de données visible est Wafermap_pokemon_2 2 ). Peut-être que la table de données Wafermap_pokemon_2 n'a pas la colonne Image correctement définie ?
Re : Afficher l'image PNG depuis l'URL dans une carte de plaquettesalut Jthi, merci pour votre aide.
Mais j'obtiens des cercles à la place des images pokemon.... un paramètre graphique à changer ?
Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteLaissez la colonne Nom de fichier sur Caractère. Je suggérerais également d'utiliser les chemins complets des images car cela facilite le chargement des images (si vous ne pouvez pas le faire, il pourrait être plus simple d'utiliser Get Default Directory() ou Convert File Path() pour créer ceux de la colonne de chargement des images. ). L'utilisation d'images comme marqueurs les rendra (très probablement) dépendantes de la taille du graphique et de la taille du marqueur utilisé. Si toutes les images sont de la même taille et que vous n'avez pas besoin d'un générateur de graphiques, la création d'un affichage personnalisé peut également être une option.
Mes images, csv et images sont dans le dossier Téléchargements/pokemons

J'ai fait un nettoyage de chemin dans le script pour les chemins
Voir plus...
Tableau de données :

Sans bordures et taille de marqueur égale à 15

Bordures et marqueur taille 30 :

Si je modifie la taille du graphique, la taille du marqueur ne suivra pas :

Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteEssaye ça:
Après avoir importé le fichier csv avec les données X/Y et les chemins de fichiers, utilisez le complément de
https://community.jmp.com/t5/Discovery-Summit-Americas-2020/Images-in-Data-Tables-and-rated-JSL-Tools-2020-US-30MP-585/ta-p/281528
en cliquant sur

Dernière étape : générer le GraphBuilder Graph et charger les images via :

Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteSalut Jthi,
Lorsque j'exécute mon script, je n'obtiens pas la wafermap avec toutes les images Pokémon...
Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteQu'est-ce qui vous pose problème ? Avez-vous réussi à placer correctement les images dans la table de données ?
Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteDesole, je suis débutant et ne reussi pas, meme avec vos conseils, a realiser ce graph, avec les images et le fichier csv en entrée. je renouvèle ma demande d'aide.merci par avance

Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteTous, Merci de vos propositions. je vais les essayer.
je vais deja essayer de faire apparaître les images dans une colonne de ma table car je ne suis pas sur du format de l'URL avec un chemin type windows (ex: //server.com/directory/image.png)
si vous avez des propositions de codes pour l affichage d image dans une base de données JMP ... je suis interesse.
Merci
Re : Afficher l'image PNG depuis l'URL dans une carte de plaquettePour utiliser les images comme formes pour les points de données, vous pouvez également spécifier la colonne via Définir la forme de la colonne dans la commande GraphBuilder.
Ou plus tard, en cliquant avec le bouton droit sur la fenêtre GraphBuilder et en sélectionnant Définir la colonne de forme... à partir de là.
Cela permet d'utiliser différentes colonnes pour différents tracés - et d'avoir certains tracés avec des marqueurs standards.

Une excellente façon d'introduire les images dans le tableau de données est expliquée ici :
https://community.jmp.com/t5/Discovery-Summit-Americas-2020/Images-in-Data-Tables-and-rated-JSL-Tools-2020-US-30MP-585/ta-p/281528
Si les liens sont répertoriés dans une colonne, il suffit d'un clic (Imagetable_Import_Images) et ils sont automatiquement chargés.
Open( "$SAMPLE_DATA/Big Class Families.jmp" );
New Column( "X", Numeric, "Continuous", Format( "Best", 12 ), Formula( Mod( Row() - 1, 7 ) ), Set Selected );
New Column( "Y", Numeric, "Continuous", Format( "Best", 12 ), Formula( Floor( (Row() - 1) / 7 ) ), Set Selected );
Graph Builder(
Size( 511, 500 ),
Show Control Panel( 0 ),
Variables( X( :X ), Y( :Y ) ),
Elements( Points( X, Y, Legend( 3 ), Set Shape Column( :picture ) ) ),
Dispatch( {}, "400", ScaleBox, {Legend Model( 3, Properties( 0, {Marker Size( 10 )}, Item ID( "Y", 1 ) ) )} )
)Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteAjouter du texte à une image pourrait vous donner quelques idées.
JMP propose trois manières de concevoir les images.
- mettez les images dans des graphiques, en utilisant les axes X et Y pour positionner et mettre à l'échelle ainsi que l'ordre des images pour déterminer ce qui se trouve en haut.
- utilisez les fonctions d'image pour charger, recadrer et redimensionner des objets image (qui peuvent être enregistrés au format PNG ou JPG une fois terminé.)
- déplacez les objets de l'image dans des matrices et utilisez des opérations matricielles pour manipuler les pixels. Revenez aux objets image pour enregistrer une image.
Vous souhaiterez utiliser (1) si vous créez déjà un graphique. Regardez la deuxième réponse, par ici :
// you could use a loop to add a bunch of images to the framebox
// <<ADDIMAGE adds="" at="" the="" front="" of="" the="" display="" list.="" the="" first=""></ADDIMAGE>
Re : Afficher l'image PNG depuis l'URL dans une carte de plaquetteVous pouvez essayer d'utiliser des images comme marqueurs Utilisation de JMP > Rapports JMP > Utiliser des marqueurs dans les graphiques > Utiliser des images comme marqueurs après avoir les images dans le tableau de données. Et comment obtenir ces images dépend beaucoup du fonctionnement de vos URL. Vous pourrez peut-être utiliser la colonne Expression avec une formule comme Open(url). Obtenir les bonnes tailles peut nécessiter quelques bricolages.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(1),
New Column("url",
Character,
"Nominal",
Set Values(
{
"https://www.jmp.com/en_us/download-jmp-free-trial/_jcr_content/par/contenttargetingcont/par_off/styledcontainer_cdbe/par/image_f589.img.png/1520449222936.png"
}
)
),
New Column("Column 2", Expression, "None", Formula(Open(:url)), Use for Marker)
);
gb = dt << Graph Builder(
Size(496, 466),
Show Control Panel(0),
Variables(X(:url)),
Elements(Points(X, Legend(2)))
);
Il peut également être judicieux d'empêcher le téléchargement des images si elles ont été téléchargées une fois.