Solution
Le contexte est tout! Donc, tout comme on pourrait vouloir incorporer de minuscules graphiques dans un bloc de texte sparklines pour les montrer dans le contexte d'une discussion, il peut être utile d'intégrer de minuscules graphiques à barres dans une carte pour comparer les variables dans le contexte de leur emplacement. Quelqu'un comme le notre @scwise , qui a ajouté cette suggestion dans un entrée de la liste de souhaits .
La solution peut être mise en œuvre à l'aide de deux fonctionnalités JMP récentes: les jointures virtuelles et la possibilité d'utiliser des images dans des cellules de tableau en tant que marqueurs. Combiné à la capacité du générateur de graphes à créer une table de données avec des éléments graphiques à partir d'un graphique composite, nous disposons de tous les éléments nécessaires pour résoudre ce puzzle. Le résultat final ressemble à ceci:
US Elections 2008: Obama vs McCainÉlections américaines 2008: Obama vs McCain
Détails ci-dessous:
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 ) ) )
);