¿Cómo forzar que el mapa de calor muestre todas las filas/columnas incluso cuando esté vacío?¿Existe algún truco para hacer que un mapa de calor muestre todas las filas incluso cuando un filtro de datos elimina algunas de ellas?
Considere este gráfico creado contra "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 ) )
)
)
Si observa este gráfico, verá que falta por completo la fila correspondiente a los 13 años. Me doy cuenta de que el filtro de datos local eliminó todas las entradas de 13 años, pero ¿hay alguna buena manera de hacer que la fila de 13 todavía aparezca, es decir, como una fila completamente blanca?
Exploración y visualización de datosRe: ¿Cómo forzar que el mapa de calor muestre todas las filas/columnas incluso cuando están vacías?Cambie la columna Edad de Ordinal a Continua y obtendrá el eje Y completo que desea

Re: ¿Cómo forzar que el mapa de calor muestre todas las filas/columnas incluso cuando están vacías?Lamentablemente, en nuestro caso esa variable es realmente nominal, por lo que no funcionará para nuestro problema específico.
Re: ¿Cómo forzar que el mapa de calor muestre todas las filas/columnas incluso cuando están vacías?Puede crear un mapa de formas simple que contenga todas las categorías y luego arrastrar la columna de recuento al mapa y se mostrará un mapa de coropletas, que es un mapa de calor. Tendrás que crear una nueva columna que sea una combinación de tus variables X e Y actuales, que apuntará al elemento específico en el mapa, pero hará lo que quieras.
Re: ¿Cómo forzar que el mapa de calor muestre todas las filas/columnas incluso cuando están vacías?Parece que esto podría funcionar. Leí los documentos sobre mapas de formas, pero no estoy seguro de entenderlos. ¿Cómo hago el mapa que estás describiendo? ¿Y cómo lo cargo?
Re: ¿Cómo forzar que el mapa de calor muestre todas las filas/columnas incluso cuando están vacías?Los mapas se pueden guardar en
C:\Users\\AppData\Roaming\SAS\JMP\Mapas
o se pueden guardar en $TEMP y luego hacer referencia a ellos pasando la ubicación a Graph Builder. Me tomé el tiempo para expandir su ejemplo a un script que crea el archivo Shape Map, lo guarda en $TEMP y finalmente grafica los datos.

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) ) ) ) )
);
);
Re: ¿Cómo forzar que el mapa de calor muestre todas las filas/columnas incluso cuando están vacías?A veces, habilitar Mostrar filas excluidas también puede funcionar. Para habilitar Mostrar filas excluidas, mantenga presionada la tecla Mayús cuando haga clic en el triángulo rojo.

pero esto puede terminar mostrando algunas filas que quizás no desee ver (por ejemplo, podría haber excluido filas de la tabla de datos).
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)))
);
Dependiendo de sus datos, Shape Files puede ser una buena idea, como ya sugirió Jim.
Re: ¿Cómo forzar que el mapa de calor muestre todas las filas/columnas incluso cuando están vacías?jarmo,
Su respuesta es claramente una mejor opción, sin embargo, la selección interactiva de
Mostrar filas excluidas
no aparece como opción en mi lista de selecciones

La opción sí aparece en mis preferencias. ¿Tienes alguna idea de cuál es el problema?
Re: ¿Cómo forzar que el mapa de calor muestre todas las filas/columnas incluso cuando están vacías?Debe mantener presionada la tecla MAYÚS cuando hace clic en el menú del triángulo rojo (JMP tiene algunas de estas funciones "ocultas" en los menús del triángulo rojo). Me enteré de ello en alguna publicación de Julian como esta https://community.jmp.com/t5/Discussions/Exclude-and-Show-Data-in-Fit-Y-by-X-and-Graph-Builder /mp/50457/highlight/true#M28685
Trazar puntos de datos excluidos y no ocultos en Graph Builder