// 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");Quelqu'un d'autre s'inquiète-t-il de l'orientation du tableau de contingence et du diagramme en mosaïque? Je ne l'utilise pas, mais l'un de nos utilisateurs JMP a voulu inverser l'orientation du tableau afin qu'il corresponde à celui de la mosaïque. Vous avez découvert que, si vous permutez X et Y, la table et la trame mosaïque sont mises à jour. Voir le script ci-dessous pour créer un exemple et les comparer côte à côte. Il semble que vous souhaitiez que les nombres du tableau soient alignés sur les cellules du diagramme en mosaïque pour faciliter la visualisation et le référencement. Je n'ai trouvé aucune discussion précédente. Il semble que le tableau de contingence ne puisse pas être modifié, il s’agit d’une CrossTabBox, qui ne se prête pas à rien. Le script ci-dessous présente dans la partie supérieure le travail à effectuer, qui consiste à créer un clone de la table lors de la commutation de x et y, puis à l'ajouter au tracé de la mosaïque. Aussi eu à faire un peu avec Value Ordering pour le mettre en ligne. Ajoutera à la liste de souhaits JMP15. J'ai discuté au sommet de découverte JMP avec le laboratoire EA et les développeurs.
Certaines publications sur le langage R ont été trouvées, où vous pouvez utiliser l'argument dir () et spécifier les valeurs horizontale et verticale, tandis que la sortie "count" dans RStudio reste la même pour l'orientation.
Exemple de tracé mosaïque # R - Changement de direction
getwd ()
employé <- read.csv ("Products.csv", TRUE, sep = ",",
na.strings = TRUE)
nombre <- table (employé $ EnglishCountryRegionName,
employé $ Couleur)
compter
mosaïque (nombre, main = "Pays Mosaïque",
sub = "Couleurs du produit par pays",
xlab = "Couleurs",
ylab = "pays",
las = 1,
dir = c ("h", "v"),
color = "skyblue2",
border = "chocolat")