Come forzare la mappa termica a mostrare tutte le righe/colonne anche se vuote?Esiste un trucco per fare in modo che una mappa termica mostri tutte le righe anche quando un filtro dati ne elimina alcune?
Considera questo complotto creato contro "Big Class.jmp":
Graph Builder(
Size( 673, 714 ),
Variables( X( :sex ), Y( :age ) ),
Elements( Heatmap( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Add Filter( columns( :height ), Where( :height >= 65.137 & :height <= 70 ) )
)
)
Se guardi questo grafico, vedi che la riga relativa ai 13 anni è completamente mancante. Mi rendo conto che il filtro dei dati locali ha rimosso tutte le voci per l'età di 13 anni, ma esiste un buon modo per far sì che la riga per 13 venga ancora visualizzata, ovvero come una riga tutta bianca.
Esplorazione e visualizzazione dei datiRi: Come forzare la mappa termica a mostrare tutte le righe/colonne anche quando sono vuote?Cambia la colonna Età da Ordinale a Continuo e otterrai l'asse Y completo che desideri

Ri: Come forzare la mappa termica a mostrare tutte le righe/colonne anche quando sono vuote?Purtroppo nel nostro caso la variabile è veramente nominale, quindi non funzionerà per il nostro problema specifico.
Ri: Come forzare la mappa termica a mostrare tutte le righe/colonne anche quando sono vuote?Puoi creare una semplice mappa Shape che contenga tutte le categorie, quindi trascinare la colonna di conteggio sulla mappa e verrà visualizzata una mappa coropletica, che è una mappa termica. Dovrai creare una nuova colonna che è una combinazione delle tue attuali variabili X e Y, che punterà all'elemento specifico nella mappa, ma farà quello che vuoi.
Ri: Come forzare la mappa termica a mostrare tutte le righe/colonne anche quando sono vuote?Sembra che potrebbe funzionare. Ho letto i documenti sulle mappe Shape, ma non sono sicuro di capirli. Come faccio a realizzare la mappa che descrivi? E come lo carico?
Ri: Come forzare la mappa termica a mostrare tutte le righe/colonne anche quando sono vuote?Le mappe possono essere salvate
C:\Users\\AppData\Roaming\SAS\JMP\Maps
oppure possono essere salvati in $TEMP e quindi referenziati passando la posizione al Costruttore di grafici. Mi sono preso il tempo per espandere il tuo esempio in uno script che crea il file Shape Map, lo salva in $TEMP e infine rappresenta graficamente i dati

Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
// Create the Shape Map tables
dtXY = New Table( "Class-XY",
New Column( "Shape", modeling type( Ordinal ) ),
New Column( "Part", Modeling type( Ordinal ) ),
New Column( "X" ),
New Column( "Y" )
);
dtName = New Table( "Class-Name",
New Column( "Shape", Modeling type( Ordinal ) ),
New Column( "Cell", character )
);
dtName:Cell << set property( "Map Role", Map Role( Shape Name Definition ) );
// Populate the tables
ages = Associative Array( dt:Age << get values ) << get keys;
sexes = Associative Array( dt:Sex << get values ) << get keys;
ID = 0;
For Each( {sex, xi}, sexes,
For Each( {age, yi}, ages,
theName = Char( sex ) || Char( age );show(thename);
ID++;
dtName << add rows( 1 );
dtName:Shape[N Rows( dtName )] = ID;
dtName:Cell[N Rows( dtName )] = theName;
dtXY << add rows( 1 );
dtXY:Shape[N Rows( dtXY )] = ID;
dtXY:Part[N Rows( dtXY )] = ID;
dtXY:X[N Rows( dtXY )] = xi;
dtXY:Y[N Rows( dtXY )] = yi;
dtXY << add rows( 1 );
dtXY:Shape[N Rows( dtXY )] = ID;
dtXY:Part[N Rows( dtXY )] = ID;
dtXY:X[N Rows( dtXY )] = xi;
dtXY:Y[N Rows( dtXY )] = yi + 1;
dtXY << add rows( 1 );
dtXY:Shape[N Rows( dtXY )] = ID;
dtXY:Part[N Rows( dtXY )] = ID;
dtXY:X[N Rows( dtXY )] = xi + 1;
dtXY:Y[N Rows( dtXY )] = yi + 1;
dtXY << add rows( 1 );
dtXY:Shape[N Rows( dtXY )] = ID;
dtXY:Part[N Rows( dtXY )] = ID;
dtXY:X[N Rows( dtXY )] = xi + 1;
dtXY:Y[N Rows( dtXY )] = yi;
)
);
// Save the Map tables to the Temp Directory
close( dtXY, Save( "$temp\mycell-XY.jmp" ));
close( dtName, Save( "$temp\mycell-Name.jmp") );
// Add the concatenated Sex/Age column to the data table
dt << New Column( "Cell", character, set each value( :Sex || Char(:Age)));
// Create the Heat map using the Shape Map
gb = Graph Builder(
Size( 522, 456 ),
Show Control Panel( 0 ),
Variables(
Color( :height ),
Shape(
:Cell,
Set Shape File( "$TEMP/mycell-Name.jmp" )
)
),
Elements(
Map Shapes(
Legend( 3 ),
Summary Statistic( "N" ),
Show Missing Shapes( 1 )
)
),
Local Data Filter(
Add Filter( columns( :height ), Where( :height >= 65.137 ) )
),
SendToReport(
Dispatch(
{},
"",
ScaleBox,
{Format( "Fixed Dec", 12, 0 ), Min( -2.44489795918367 ),
Max( 6.44489795918367 ), Inc( 1 ), Minor Ticks( 0 ),
Label Row(
{Automatic Font Size( 0 ), Automatic Tick Marks( 0 ),
Show Major Labels( 0 ), Show Major Ticks( 0 ), Show Minor Ticks( 0 )
}
)}
),
Dispatch(
{},
"",
ScaleBox( 2 ),
{Min( -0.0843053453846471 ), Max( 7.18430534538465 ), Inc( 1 ),
Minor Ticks( 0 ), Label Row(
{Automatic Font Size( 0 ), Automatic Tick Marks( 0 ),
Show Major Labels( 0 ), Show Major Ticks( 0 ), Show Minor Ticks( 0 )
}
)}
),
Dispatch( {}, "400", LegendBox, {Set Title( "Count" )} )
)
);
// Add the cell labelling to the graph
Report( gb )[FrameBox( 1 )] << Add Graphics script(
For Each( {sex, xi}, sexes,
Eval( Eval Expr( Text( Center Justified, {Expr( xi + .5 ), .5}, Expr( sex ) ) ) )
);
For Each( {age, yi}, ages,
Eval( Eval Expr( Text( Center Justified, {.5,Expr( yi + .5 ) }, Expr( char(age) ) ) ) )
);
);
Ri: Come forzare la mappa termica a mostrare tutte le righe/colonne anche quando sono vuote?A volte potrebbe funzionare anche l'attivazione di Mostra righe escluse. Per abilitare Mostra righe escluse, tieni premuto Maiusc quando fai clic sul triangolo rosso

ma questo può finire per mostrare alcune righe che potresti non voler vedere (ad esempio potresti aver escluso righe dalla tabella dati).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(626, 662),
Show Control Panel(0),
Ignore Platform Preferences(1),
Show Excluded Rows(1),
Variables(X(:sex), Y(:age)),
Elements(Heatmap(X, Y, Legend(2))),
Local Data Filter(Add Filter(columns(:height), Where(:height >= 65.137)))
);
A seconda dei tuoi dati, Shape Files può essere una buona idea come ha già suggerito Jim.
Ri: Come forzare la mappa termica a mostrare tutte le righe/colonne anche quando sono vuote?Jarmo,
La tua risposta è chiaramente una scelta migliore, tuttavia, la selezione interattiva di
Mostra righe escluse
non appare come un'opzione nel mio elenco di selezioni

L'opzione appare nelle mie preferenze. Hai idea di quale sia il problema?
Ri: Come forzare la mappa termica a mostrare tutte le righe/colonne anche quando sono vuote?Devi tenere premuto MAIUSC quando fai clic sul menu del triangolo rosso (JMP ha alcune di queste funzionalità "nascoste" nei menu del triangolo rosso). L'ho appreso in alcuni post di Julian come questo https://community.jmp.com/t5/Discussions/Exclude-and-Show-Data-in-Fit-Y-by-X-and-Graph-Builder /mp/50457/highlight/true#M28685
Traccia punti dati esclusi e non nascosti nel Costruttore di grafici