// 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");Qualcun altro è infastidito dall'orientamento della tabella di contingenza e del mosaico? Non lo uso, ma uno dei nostri utenti JMP voleva capovolgere l'orientamento della tabella in modo che corrisponda alla trama del mosaico. Scopriamo che se si scambiano X e Y, sia l'aggiornamento della tabella che della trama del mosaico. Vedi lo script di seguito per eseguire un esempio e confrontarli fianco a fianco. Sembra che vorrai che i numeri nella tabella si allineino con le celle nel grafico a mosaico per facilitare la visualizzazione e il riferimento. Non sono riuscito a trovare discussioni precedenti. Sembra che la tabella di contingenza non possa essere cambiata, è un CrossTabBox, che non si presta a cambiare nulla. Lo script che segue ha nella parte superiore il lavoro attorno al quale è possibile creare un clone del tavolo quando si cambia xey, e quindi aggiungerlo alla trama del mosaico. Dovevo anche fare un po 'di ordine dei valori per farlo allineare. Aggiungerà alla lista dei desideri di JMP15. Ho discusso al JMP Discovery Summit con il laboratorio EA e gli sviluppatori.
Trovato alcuni post sul linguaggio R, in cui è possibile utilizzare l'argomento dir () e specificare l'orizzontale e il verticale, mentre l'output "count" in RStudio rimane lo stesso per l'orientamento.
# R Esempio di trama del mosaico - Modifica della direzione
getwd ()
impiegato <- read.csv ("Products.csv", TRUE, sep = ",",
na.strings = TRUE)
conteggio <- tabella (dipendente $ EnglishCountryRegionName,
dipendente $ colore)
contare
mosaicplot (count, main = "Paesi Mosaic Plot",
sub = "Colori del prodotto per Paese",
xlab = "Colori",
ylab = "Paesi",
las = 1,
dir = c ("h", "v"),
color = "skyblue2",
border = "chocolate")