// 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");¿Alguien más está molesto por la orientación de la tabla de contingencia y el diagrama de mosaico? No lo uso, pero uno de nuestros usuarios de JMP quería cambiar la orientación de la tabla para que coincida con la trama del mosaico. Descubrió que si intercambia X e Y, tanto la tabla como el mosaico se actualizan. Vea el script a continuación para ejecutar un ejemplo y compararlos uno al lado del otro. Parece que querría que los números en la tabla se alineen con las celdas en el diagrama de mosaico para facilitar su visualización y referencia. No pude encontrar ninguna discusión previa. Parece que la tabla de contingencia no se puede cambiar, es un CrossTabBox, que no se presta para cambiar nada. La siguiente secuencia de comandos tiene en la parte superior la solución, que consiste en hacer un clon de la tabla realizada al cambiar las x y las y, a continuación, agregarlas a la gráfica de mosaico. También tuve que hacer un poco con Value Ordering para que se alinee. Se añadirá a la lista de deseos JMP15. Discutí en JMP Discovery Summit con el laboratorio de EA y los desarrolladores.
Encontró algunas publicaciones en el lenguaje R, donde puede usar el argumento dir () y especificar la horizontal y vertical, mientras que la salida de "conteo" en RStudio permanece igual para la orientación.
# R Ejemplo de gráfico de mosaico - Cambio de dirección
getwd ()
empleado <- read.csv ("Products.csv", TRUE, sep = ",",
na.strings = VERDADERO)
count <- table (employee $ EnglishCountryRegionName,
empleado $ Color)
contar
mosaicplot (count, main = "Paises mosaico de países",
sub = "Colores del producto por país",
xlab = "Colores",
ylab = "Países",
las = 1,
dir = c ("h", "v"),
color = "skyblue2",
borde = "chocolate")