Générateur de graphes> Ajouter un script graphique & gt; Ajouter Personnaliser la forme, les icônes ou l'image?Salut la communauté JMP,
De la même manière que 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?
À noter, je suis ne 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 du 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 de votre aide.
Meilleur,
TS
GraphiqueScriptingRe: Graph Builder> Ajouter un script graphique & gt; Ajouter Personnaliser la forme, les icônes ou l'image?fonction path ()?
https://community.jmp.com/t5/Discussions/Bezier-interpolation/mp/257852#M50666
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 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.
Re: Graph Builder> Ajouter un script graphique & gt; Ajouter Personnaliser la forme, les icônes ou l'image?
É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: Graph Builder> Ajouter un script graphique & gt; Ajouter Personnaliser la forme, les icônes ou l'image?Cher Craige,
Merci pour votre suggestion, je vais examiner 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 des cercles mais je cherche maintenant à faire la même chose avec une autre forme telle qu'une étoile ou une autre forme personnalisée.
Meilleures salutations,
TSRe: Graph Builder> Ajouter un script graphique & gt; Ajouter Personnaliser la forme, les icônes ou l'image?Il y a aussi PixelPath () une fonction. Si vous rencontrez des problèmes de performances, avec peut-être des milliers de points, PixelPath permet le repositionnement, le dimensionnement et la rotation d'un chemin existant. (Je ne vois pas comment faire ça 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 dans 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.