Generatore di grafici> Aggiungi script di grafica & gt; Aggiungi Personalizza forma, icone o immagine?Salve JMP Community,
Analogamente ai comandi Script grafici Cerchio, Ovale e Rettangolo, è possibile inserire in un FrameBox forme, icone o immagini personalizzate?
Da notare, lo sono non alla ricerca di personalizzare i marcatori dei punti dati.
Ecco uno snippet del tipo di script grafico con cui sto lavorando (gb è una mappa termica del generatore di grafici) in cui vorrei sostituire il cerchio con una forma personalizzata:
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")
)
);
);
Grazie per l'aiuto.
Migliore,
TS
GraficaScriptingRi: Generatore di grafici> Aggiungi script di grafica & gt; Aggiungi Personalizza forma, icone o immagine?funzione path ()?
https://community.jmp.com/t5/Discussions/Bezier-interpolation/mp/257852#M50666
e Albero di Bézier usando Path () (e l'indice di scripting probabilmente ha più semplici non Bézier esempi.)
Anche la proprietà della colonna UseForMarker funziona sulle colonne dell'immagine, ma sembra che potresti non avere un punto dati per ogni indicatore.
Penso che l'unico modo per ottenere immagini o icone senza UseForMarker è creare segmenti di immagini separati per ciascun marker. Possono essere posizionati seg-by-seg.
Ri: Generatore di grafici> Aggiungi script di grafica & gt; Aggiungi Personalizza forma, icone o immagine?
Stelle a punta N
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
Ri: Generatore di grafici> Aggiungi script di grafica & gt; Aggiungi Personalizza forma, icone o immagine?Caro Craige,
Grazie per il tuo suggerimento, esaminerò questo metodo. Tuttavia, potrei non aver fornito dettagli sufficienti per ottenere il feedback che sto cercando specificamente.
Nel caso specifico su cui sto lavorando, sto aggiungendo forme a una mappa termica tra le celle per denotare il significato del contrasto tra queste. Finora, tutto funziona come previsto utilizzando Cerchi, ma ora sto cercando di fare la stessa cosa con un'altra forma come una stella o un'altra forma personalizzata.
I migliori saluti,
TSRi: Generatore di grafici> Aggiungi script di grafica & gt; Aggiungi Personalizza forma, icone o immagine?C'è anche un PixelPath () funzione. Se si verificano problemi di prestazioni, forse con migliaia di punti, PixelPath consente di riposizionare, ridimensionare e ruotare un percorso esistente. (Non vedo come farlo con Sentiero() .) Puoi pre-creare le stelle una volta, quindi riutilizzarle con PixelPath.
Path () e PixelPath () si comportano in modo diverso quando allunghi il grafico: Path disegna nelle coordinate dell'utente e il disegno si allunga per adattarsi agli assi correnti. PixelPath disegna in pixel ei simboli non cambiano dimensione.
L'indice di scripting ha un esempio per PixelPath; usa PixelOrigin (x, y) e lascia h, v su 0,0.