Générateur de graphiques > Ajouter un script graphique > Ajouter une forme, des icônes ou une image personnalisée ?Salut la communauté JMP,
Comme pour les commandes Graphics Script Circle, Oval et Rectangle, est-il possible d'insérer dans un FrameBox des formes, des icônes ou des images personnalisées ?
A noter, je suis pas à la recherche de marqueurs de points de données personnalisés.
Voici un extrait du type de script graphique avec lequel je travaille (gb est une carte thermique de générateur de graphiques) où je voudrais remplacer le cercle par une forme personnalisée :
gbr = report (gb);
fb = gbr [FrameBox (1)];
fb << add graphics script (
Fill color (black);
For (i = 0, i <= 24, i++,
For (j = 0.5, j <= 7, j = j+2,
r = (i*8) + (j+0.5);
s = column (dt,"SIZE FDR") [r] / 8;
if (s < 0.02, s = 0.02);
circle ({i,j}, s, "FILL")
)
);
);
Merci pour votre aide.
Meilleur,
TS
Personnalisation de masseRe : Générateur de graphiques > Ajouter un script graphique > ; Ajouter une forme, des icônes ou une image personnalisée ?Il y a aussi PixelPath() fonction. Si vous rencontrez des problèmes de performances, avec peut-être des milliers de points, PixelPath permet de repositionner, de dimensionner et de faire pivoter un chemin existant. (je ne vois pas comment faire avec Chemin() .) Vous pouvez pré-créer la ou les étoiles une fois, puis les réutiliser avec PixelPath.
Path() et PixelPath() se comportent différemment lorsque vous étirez le graphique : Path dessine les coordonnées de l'utilisateur et le dessin s'étire pour s'adapter aux axes actuels. PixelPath dessine en pixels et les symboles ne changent pas de taille.
L'index de script a un exemple pour PixelPath ; utilisez PixelOrigin(x,y) et laissez h,v à 0,0.
Re : Générateur de graphiques > Ajouter un script graphique > ; Ajouter une forme, des icônes ou une image personnalisée ?
N-pointed starsN-pointed starsétoiles à N pointes
makestar = Function( {x, y, npoints, inside, outside},
{p = J( 2 * npoints, 3, . ), angle, i, move = 1, draw = 2},
For( i = 1, i < N Rows( p ), 0,
angle = 2 * Pi() * i / N Rows( p );
p[i, 1] = x + Sin( angle ) * inside; // sin and cos are reversed here to
p[i, 2] = y + Cos( angle ) * inside; // make the point be at the top.
p[i, 3] = If( i == 1, move, draw ); // swap sin/cos for point at left.
i += 1;
angle = 2 * Pi() * i / N Rows( p );
p[i, 1] = x + Sin( angle ) * outside; // ditto
p[i, 2] = y + Cos( angle ) * outside;
p[i, 3] = If( i == N Rows( p ), -draw, draw );
i += 1;
);
p; // return
);
New Window( "Example",
gb = Graph Box(
xaxis( Show Major Grid( 1 ) ),
yaxis( Show Major Grid( 1 ) ),
framesize( 500, 500 ),
Pen Color( "red" );
Pen Size( 3 );
Fill Color( "blue" );
npoints = 3; // each star gets more points below
For( xx = 20, xx <= 80, xx += 20,
For( yy = 20, yy <= 80, yy += 20,
// the inside/outside ratio needs to change with more points...
p = makestar( xx, yy, npoints, 2 + npoints / 4, 8 );
Path( p, 1 ); // blue solid fill
Path( p, 0 ); // red outline
npoints += 1;
)
);
)
);
// move the grid lines above the stars
grid = gb[framebox( 1 )] << find seg( SegPlaceholder( 1 ) );
// grid is the original, below the stars
gb[framebox( 1 )] << appendseg( grid ); // makes a copy above
// probably not needed...they are on top of each other...
grid << delete; // delete the original from below
Re : Générateur de graphiques > Ajouter un script graphique > ; Ajouter une forme, des icônes ou une image personnalisée ?Cher Craig,
Merci pour votre suggestion, je vais étudier cette méthode. Cependant, je n'ai peut-être pas fourni suffisamment de détails pour obtenir les commentaires que je recherche spécifiquement.
Dans le cas spécifique sur lequel je travaille, j'ajoute des formes à une carte thermique à travers les cellules pour indiquer l'importance du contraste entre celles-ci. Jusqu'à présent, tout fonctionne comme prévu en utilisant Circles mais je cherche maintenant à faire la même chose avec une autre forme telle qu'une étoile ou une autre forme personnalisée.
Cordialement,
TSRe : Générateur de graphiques > Ajouter un script graphique > ; Ajouter une forme, des icônes ou une image personnalisée ?fonction chemin() ?
Interpolation de Bézier et Arbre de Bézier utilisant Path() (et l'index de script a probablement des non- Bézier exemples.)
De plus, la propriété de colonne UseForMarker fonctionne sur les colonnes d'image, mais il semble que vous n'ayez peut-être pas de point de données pour chaque marqueur.
Je pense que la seule façon d'obtenir des images ou des icônes sans UseForMarker est de créer des segments d'image séparés pour chaque marqueur. Ils peuvent être positionnés segment par segment.