Wie erzwinge ich, dass eine Heatmap alle Zeilen/Spalten anzeigt, auch wenn sie leer sind?Gibt es einen Trick, damit eine Heatmap alle Zeilen anzeigt, auch wenn ein Datenfilter einige davon eliminiert?
Betrachten Sie diesen Plot, der gegen „Big Class.jmp“ erstellt wurde:
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 ) )
)
)
Wenn Sie sich diese Darstellung ansehen, sehen Sie, dass die Zeile für das Alter von 13 Jahren vollständig fehlt. Mir ist klar, dass der lokale Datenfilter alle Einträge für das Alter von 13 Jahren entfernt hat, aber gibt es eine gute Möglichkeit, die Zeile für 13 weiterhin anzuzeigen, dh als komplett weiße Zeile?
Datenexploration und -visualisierungBetreff: Wie erzwinge ich, dass eine Heatmap alle Zeilen/Spalten anzeigt, auch wenn sie leer sind?Ändern Sie die Spalte „Alter“ von „Ordinal“ in „Kontinuierlich“ und Sie erhalten die vollständige Y-Achse, die Sie möchten

Betreff: Wie erzwinge ich, dass eine Heatmap alle Zeilen/Spalten anzeigt, auch wenn sie leer sind?Leider ist diese Variable in unserem Fall tatsächlich nominal, sodass dies für unser spezifisches Problem nicht funktioniert.
Betreff: Wie erzwinge ich, dass eine Heatmap alle Zeilen/Spalten anzeigt, auch wenn sie leer sind?Sie können eine einfache Formkarte erstellen, die alle Kategorien enthält, und dann Ihre Zählspalte auf die Karte ziehen. Daraufhin wird eine Choroplethenkarte angezeigt, bei der es sich um eine Wärmekarte handelt. Sie müssen eine neue Spalte erstellen, die eine Kombination Ihrer aktuellen X- und Y-Variablen ist, die auf das spezifische Element in der Karte zeigt, aber das tut, was Sie wollen.
Betreff: Wie erzwinge ich, dass eine Heatmap alle Zeilen/Spalten anzeigt, auch wenn sie leer sind?Das hört sich so an, als ob es funktionieren könnte. Ich habe die Dokumentation zu Shape Maps gelesen, bin mir aber nicht sicher, ob ich sie verstehe. Wie erstelle ich die von Ihnen beschriebene Karte? Und wie lade ich es?
Betreff: Wie erzwinge ich, dass eine Heatmap alle Zeilen/Spalten anzeigt, auch wenn sie leer sind?Die Karten können gespeichert werden
C:\Users\\AppData\Roaming\SAS\JMP\Maps
Alternativ können sie in $TEMP gespeichert und dann referenziert werden, indem der Speicherort an Graph Builder übergeben wird. Ich habe mir die Zeit genommen, Ihr Beispiel in ein Skript zu erweitern, das die Shape-Map-Datei erstellt, sie in $TEMP speichert und schließlich die Daten grafisch darstellt

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) ) ) ) )
);
);
Betreff: Wie erzwinge ich, dass eine Heatmap alle Zeilen/Spalten anzeigt, auch wenn sie leer sind?Manchmal funktioniert möglicherweise auch die Aktivierung von „Ausgeschlossene Zeilen anzeigen“. Um „Ausgeschlossene Zeilen anzeigen“ zu aktivieren, halten Sie die Umschalttaste gedrückt, während Sie auf das rote Dreieck klicken

Dies kann jedoch dazu führen, dass einige Zeilen angezeigt werden, die Sie möglicherweise nicht sehen möchten (Sie hätten beispielsweise Zeilen aus der Datentabelle ausschließen können).
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)))
);
Abhängig von Ihren Daten können Shape-Dateien eine gute Idee sein, wie Jim bereits vorgeschlagen hat.
Betreff: Wie erzwinge ich, dass eine Heatmap alle Zeilen/Spalten anzeigt, auch wenn sie leer sind?Jarmo,
Ihre Antwort ist jedoch eindeutig eine bessere Wahl, die interaktive Auswahl von
Ausgeschlossene Zeilen anzeigen
erscheint nicht als Option in meiner Auswahlliste

Die Option erscheint in meinen Einstellungen. Haben Sie eine Ahnung, wo das Problem liegt?
Betreff: Wie erzwinge ich, dass eine Heatmap alle Zeilen/Spalten anzeigt, auch wenn sie leer sind?Sie müssen die UMSCHALTTASTE gedrückt halten, wenn Sie auf das Menü mit dem roten Dreieck klicken (JMP verfügt über einige dieser „versteckten“ Funktionen in Menüs mit roten Dreiecken). Ich habe davon in einem Beitrag von Julian erfahren, beispielsweise in diesem https://community.jmp.com/t5/Discussions/Exclude-and-Show-Data-in-Fit-Y-by-X-and-Graph-Builder /mp/50457/highlight/true#M28685
Zeichnen Sie ausgeschlossene und nicht ausgeblendete Datenpunkte im Graph Builder