Creador de gráficos > Agregar secuencia de comandos de gráficos > ¿Agregar forma personalizada, íconos o imagen?Hola comunidad JMP,
De manera similar a los comandos Circle, Oval y Rectangle de Graphics Script, ¿es posible insertar en un FrameBox formas, íconos o imágenes personalizados?
De nota, estoy no buscando personalizar marcadores de puntos de datos.
Aquí hay un fragmento del tipo de script de gráficos con el que estoy trabajando (gb es un mapa de calor del generador de gráficos) donde me gustaría reemplazar el círculo con una forma personalizada:
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")
)
);
);
Gracias por su ayuda.
Mejor,
TS
Gráficossecuencias de comandosRe: Generador de gráficos > Agregar script de gráficos > ¿Agregar forma personalizada, íconos o imagen?También hay una ruta de píxeles() función. Si tiene problemas de rendimiento, quizás con miles de puntos, PixelPath permite reposicionar, cambiar el tamaño y rotar una ruta existente. (No veo cómo hacer eso con Camino() .) Puede crear previamente la(s) estrella(s) una vez y luego reutilizarlas con PixelPath.
Path() y PixelPath() se comportan de manera diferente cuando estira el gráfico: Path dibuja en las coordenadas del usuario y el dibujo se estira para ajustarse a los ejes actuales. PixelPath dibuja en píxeles y los símbolos no cambian de tamaño.
El índice de secuencias de comandos tiene un ejemplo para PixelPath; use PixelOrigin(x,y) y deje h,v en 0,0.
Re: Generador de gráficos > Agregar script de gráficos > ¿Agregar forma personalizada, íconos o imagen?
N-pointed starsN-pointed starsestrellas de 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
Re: Generador de gráficos > Agregar script de gráficos > ¿Agregar forma personalizada, íconos o imagen?Estimado cliente,
Gracias por tu sugerencia, investigaré este método. Sin embargo, es posible que no haya proporcionado suficientes detalles para obtener los comentarios que busco específicamente.
En el caso específico en el que estoy trabajando, estoy agregando formas a un mapa de calor a través de las celdas para indicar la importancia del contraste entre estas. Hasta ahora, todo funciona según lo planeado usando Círculos, pero ahora estoy buscando hacer lo mismo con otra forma, como una estrella u otra forma personalizada.
Atentamente,
TSRe: Generador de gráficos > Agregar script de gráficos > ¿Agregar forma personalizada, íconos o imagen?función ruta()?
interpolación de Bézier y Árbol Bezier usando Path() (y el índice de secuencias de comandos probablemente tiene no- Bezier ejemplos.)
Además, la propiedad de columna UseForMarker funciona en columnas de imágenes, pero parece que no tiene un punto de datos para cada marcador.
Creo que la única forma de obtener imágenes o íconos sin UseForMarker es crear segmentos de imágenes separados para cada marcador. Se pueden colocar, segmento por segmento.