Creador de gráficos> Agregar secuencia de comandos de gráficos & gt; ¿Añadir forma personalizada, iconos o imagen?Hola, comunidad de JMP:
De manera similar a los comandos de Graphics Script Circle, Oval y Rectangle, ¿es posible insertar en un FrameBox formas, íconos o imágenes personalizados?
De nota, soy 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 tu ayuda.
Mejor,
TS
GráficosScriptingRe: Generador de gráficos> Agregar secuencia de comandos de gráficos & gt; ¿Añadir forma personalizada, iconos o imagen?función ruta ()?
https://community.jmp.com/t5/Discussions/Bezier-interpolation/mp/257852#M50666
y Árbol Bezier usando Path () (y el índice de secuencias de comandos probablemente tiene Bézier ejemplos.)
Además, la propiedad de columna UseForMarker funciona en columnas de imagen, pero parece que es posible que no tenga un punto de datos para cada marcador.
Creo que la única forma de obtener imágenes o íconos sin UseForMarker es hacer segmentos de imagen separados para cada marcador. Se pueden posicionar seg-por-seg.
Re: Generador de gráficos> Agregar secuencia de comandos de gráficos & gt; ¿Añadir forma personalizada, iconos o imagen?
Estrellas de N puntas
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 secuencia de comandos de gráficos & gt; ¿Añadir forma personalizada, iconos o imagen?Querido Craige,
Gracias por su sugerencia, analizaré este método. Sin embargo, es posible que no haya proporcionado suficientes detalles para obtener los comentarios que estoy buscando específicamente.
En el caso específico en el que estoy trabajando, estoy agregando formas a un mapa de calor en las celdas para denotar el significado 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 secuencia de comandos de gráficos & gt; ¿Añadir forma personalizada, iconos o imagen?También hay una PixelPath () función. Si tiene problemas de rendimiento, quizás con miles de puntos, PixelPath permite reposicionar, dimensionar y rotar una ruta existente. (No veo como hacer eso con Camino() .) Puede crear previamente las estrellas una vez y luego reutilizarlas con PixelPath.
Path () y PixelPath () se comportan de manera diferente cuando se estira el gráfico: Path se 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.