Solución
¡El contexto lo es todo! Así como uno podría querer incrustar pequeños gráficos de líneas en un bloque de texto como líneas de chispa para mostrarlos en el contexto de una discusión, es posible que alguien desee incrustar pequeños gráficos de barras en un mapa para comparar las variables en el contexto de su ubicación. Alguien como el nuestro @scwise , quien agregó esta sugerencia en un entrada de la lista de deseos .
La solución se puede implementar utilizando dos características JMP recientes: uniones virtuales y la capacidad de usar imágenes en celdas de tablas como marcadores. Combinado con la capacidad del Generador de gráficos para crear una tabla de datos con elementos gráficos de un gráfico compuesto, tenemos todas las piezas necesarias para resolver este rompecabezas. El resultado final se ve así:
US Elections 2008: Obama vs McCainElecciones de Estados Unidos 2008: Obama vs McCain
Detalles abajo:
dt1 = Open("$SAMPLE_DATA/US Election 2008.jmp");
// Create per state graphs
gb1 = Graph Builder(
Variables( Y( :Obama ), Y( :McCain, Position( 1 ) ), Page( :State ) ),
Elements( Bar( Y( 1 ), Y( 2 ), Legend( 8 ), Summary Statistic( "Max" ) ) ),
SendToReport(
Dispatch(
{},
"",
ScaleBox( 2 ),
{Min( -0.657608695652174 ), Max( 0.657608695652174 ), Inc( 0.25 ),
Minor Ticks( 0 )}
),
Dispatch(
{},
"",
ScaleBox( 3 ),
{Min( -0.657608695652174 ), Max( 0.657608695652174 ), Inc( 0.25 ),
Minor Ticks( 0 )}
),
Dispatch( {}, "400", LegendBox, {Set Title( "" )} )
)
);
// Save graphs as images to data table
dt2 = gb1 << Make into Data Table;
// Tip: save table to enable virtual join
dt2 << Save("$TEMP/ElectionPerStateGraph.jmp");
// Set virtual join between tables
dt2:State << Set Property("Link ID", 1);
dt1:State << Set Property(
"Link Reference",
Reference Table( "$TEMP/ElectionPerStateGraph.jmp" ));
// Use virtually joined graph column as source for markers
col = Column(dt1, "Graph[State]");
col << UseForMarker( 1 );
// Create map with a points overlay using graph markers
dt1 << Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( Shape( :State ) ),
Elements( Map Shapes( Legend( 2 ) ), Points( Legend( 3 ) ) )
);