Hola,
Estoy buscando un método para apuntar y modificar constantemente los elementos de la leyenda en el generador de gráficos.
Después de agregar variables para generar el gráfico básico, uso las instrucciones de despacho para modificar el estilo/color/tamaño de línea.
El problema con el que me encuentro es que el texto de la leyenda (o los identificadores de elementos) cambia según las filas que he incluido/excluido en la tabla de datos y, por lo tanto, la declaración de envío funcionará para algunas selecciones pero no para otras.
Ejemplo:
LHS, tengo varias filas por categoría x (YearMonth). El texto de la leyenda tiene el formato - "Mean(ColumnName)" | RHS, con filas excluidas solo tengo un soltero fila por categoría x. El texto de la leyenda tiene el formato - "ColumnName" |
 |  |
Para modificar los elementos de la leyenda, estoy usando la declaración Modelo de leyenda (...) como se muestra a continuación, donde el ID del elemento ("Promedio (Rendimiento_A)", 1) identifica el elemento a modificar.
gb << send to report (
Dispatch(
{},
"400",
ScaleBox,
{Legend Model( 15,
Level Name( 0, "Yield_A", Item ID( "Mean(Yield_A)", 1 ) ),
Properties( 0, {Line Color( "red" ), Line Width( 6 )}, Item ID( "Mean(Yield_A)", 1 ) ),
)
}
));Uso un filtro de tabla de datos para incluir/excluir filas para reducir el gráfico a un solo segmento o producto.
Cuando se filtra a un solo producto, hay una sola fila por YearMonth y el texto de la leyenda cambia como se resalta en el gráfico RHS anterior.
El ID del artículo original ("Mean(Yield_A)", 1 ) utilizado en la declaración de envío no encontrará un artículo coincidente (el nombre de la columna ya no está envuelto en mean())
Una solución alternativa es duplicar la(s) declaración(es) del modelo de leyenda, para apuntar al texto de la leyenda con el formato de "NombreColumna", por ejemplo, Id. de artículo ("Rendimiento_A", 1)
Esto funciona pero es engorroso.
Preguntas:
- ¿Existe un método alternativo/mejor para apuntar a los elementos de la leyenda que funcione para los dos casos mencionados anteriormente?
- ¿Hay alguna documentación independiente para la declaración del modelo de leyenda () o sus componentes (no pude encontrarla)?
Un último pensamiento... Supongo que cuando solo hay una sola fila/valor para cada categoría x, la eliminación del contenedor Mean() en el texto de la leyenda es intencional, pero quizás tenga sentido que el elemento de la leyenda se muestre como "Mean( columnName)", incluso cuando solo hay un valor? Después de todo, la estadística de resumen para el elemento de línea aún está establecida en "Media".
Gracias,
Rayo
Acepté lo anterior como solución, pero solo funciona para JMP16. Así que sigo abierto a otras sugerencias/opciones que podrían funcionar con JMP15. Gracias
Parece que Servidor de leyenda es una adición JMP16.
Aunque tengo JMP16 instalado, la mayoría de mi organización todavía usa JMP14 o JMP15.
Estoy creando una GUI de JMP para compartir con el equipo, por lo que tendré que seguir con JMP15 por ahora.
@jthi - gracias por los aportes - Definitivamente usaré esto en el futuro (pero no ahora).
Verifique el índice de secuencias de comandos para Legend Server, le permite cambiar las etiquetas de leyenda al menos (aunque la documentación es bastante mala para Legend Server)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Variables(X(:height), Y(:weight), Overlay(:sex), Color(:age)),
Elements(Points(X, Y, Legend(1)), Smoother(X, Y, Legend(2)))
);
server = gb << Get Legend Server;
items = server << Get Legend Items;
For Each({item, index}, items[1], item << Set Label("Item " || Char(index)));