// For a contingency table report, swap the x and y
// currently can swap the mosaic plot only
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
myr = Contingency( Y( :Age ), X( :sex ) );
// Have to have a Contingency Analysis report open
// Can add test to make sure it is open in the future
myr = Current Report();
// taking apart CrossTabBox was easier using XML than JSL
mys = myr["Contingency Table"][CrossTabBox(1)] << Get XML;
// get current X role or rows of contingency table
start = Contains(mys,"<CROSSTABBOXROWSLABEL>")+22;
end = Contains(mys,"</CROSSTABBOXROWSLABEL>");
newY = Substr(mys,start,end-start);
// get current Y role or cols of contingency table
start = Contains(mys,"<CROSSTABBOXCOLSLABEL>")+22;
end = Contains(mys,"</CROSSTABBOXCOLSLABEL>");
newX = Substr(mys,start,end-start);
// Recreate same contingency table but with X and Y flipped
// also temporarily use Value Order to match the Mosaic Plot
myValueLabels = Reverse(Associative Array(Column(dt,newX)) << Get Keys);
Column(dt,newX) << Set Property("Value Ordering",myValueLabels);
tempCont = Contingency( Y(Column(dt,newY) ), X(Column(dt,newX) ), Contingency Table );
tempContr = tempCont << Report;
mycopy = tempContr["Contingency Table"][CrossTabBox(1)] << Clone Box;
tempCont << Close Window;
Column(dt,newX) << Delete Property("Value Ordering");
// remove the original contingency table and replace with transpose
myr["Contingency Table"][CrossTabBox(1)] << Delete;
myr["Contingency Table"] << Append(mycopy);
// show original side by side
obj = Contingency( Y( :Age ), X( :sex ) );
Report(obj)["Contingency Table"] << Set Title("Contingency Table - Current output");
myr["Contingency Table"] << Set Title("Contingency Table - Wish List for JMP15");Stört jemand anderes die Orientierung der Kontingenztabelle und des Mosaikplots? Ich benutze es nicht, aber einer unserer JMP-Benutzer wollte die Ausrichtung der Tabelle so drehen, dass sie der Mosaikdarstellung entspricht. Wenn Sie X und Y austauschen, werden sowohl die Tabellen- als auch die Mosaikplot-Aktualisierung aktualisiert. Siehe unten stehendes Skript, um ein Beispiel auszuführen und sie nebeneinander zu vergleichen. Es scheint, dass Sie möchten, dass die Zahlen in der Tabelle mit den Zellen im Mosaikdiagramm übereinstimmen, um das Anzeigen und Referenzieren zu erleichtern. Ich konnte keine vorherigen Diskussionen finden. Es scheint, dass die Kontingenztabelle nicht geändert werden kann. Es handelt sich um eine CrossTabBox, die sich nicht für Änderungen eignet. Das folgende Skript hat im oberen Teil die Arbeit, um einen Klon der Tabelle zu erstellen, der beim Umschalten von x und y gemacht wird und dann an das Mosaikdiagramm angehängt wird. Mußte auch ein wenig mit Value Ordering tun, um es zum Line-Up zu bringen. Fügt der JMP15-Wunschliste hinzu. Ich habe auf dem JMP Discovery Summit mit dem EA-Labor und den Entwicklern diskutiert.
Es wurden einige Beiträge zur Sprache R gefunden, in der Sie das Argument dir () verwenden und die horizontale und vertikale Position angeben können, während die Ausgabe "count" in RStudio für die Ausrichtung gleich bleibt.
# R Beispiel für ein Mosaikdiagramm - Ändern der Richtung
getwd ()
Angestellter <- read.csv ("Products.csv", TRUE, sep = ",", ")
na.strings = TRUE)
count <- table (Angestellter $ EnglishCountryRegionName,
Mitarbeiter $ Farbe)
Anzahl
Mosaikplot (Anzahl, Haupt = "Länder-Mosaikplot"),
sub = "Produktfarben nach Land",
xlab = "Farben",
ylab = "Länder",
las = 1,
dir = c ("h", "v"),
color = "skyblue2",
Grenze = "Schokolade")