// 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");他の誰かが分割表とモザイクプロットの方向性に悩まされていませんか。私はそれを使用しませんが、私たちのJMPユーザーの一人はそれがモザイクプロットと一致するようにテーブルの向きを反転させたいと思いました。XとYを入れ替えると、テーブルとモザイクプロットの両方が更新されることがわかりました。例を実行してそれらを並べて比較するには、以下のスクリプトを参照してください。見やすく参照しやすいように、テーブル内の数字をモザイクプロット内のセルと揃えることをお勧めします。私は以前の議論を見つけることができませんでした。分割表は変更できないように見えます。これはCrossTabBoxであり、変更することには向いていません。以下のスクリプトは上部に回避策があります。これは、xとyを切り替えてモザイクプロットに追加するときに作成されたテーブルのクローンを作成することです。それを揃えるには、Value Orderingにも少し手を加える必要がありました。JMP15のウィッシュリストに追加します。JMP Discovery SummitでEAのラボと開発者と話し合った。
R言語でいくつかの投稿を見つけました。そこでは、dir()引数を使用して水平方向と垂直方向を指定することができますが、RStudioの "count"出力は向きについても同じです。
#Rモザイクプロットの例 - 方向の変更
getwd()
従業員< - read.csv( "Products.csv"、TRUE、sep = "、"、
na.strings = TRUE)
count < - テーブル(従業員$ EnglishCountryRegionName、
従業員$色)
カウント
mosaicplot(count、main = "国モザイクプロット"、
sub = "国別製品の色"、
xlab = "色数"、
ylab = "国"、
las = 1、
dir = c( "h"、"v")、
color = "skyblue2"、
border = "チョコレート")