还有人对列联表和马赛克图的方向感到困扰吗?我没有使用它,但我们的一位 JMP 用户想要翻转表格的方向,以便它与马赛克图相匹配。发现如果交换 X 和 Y,表格和马赛克图都会更新。请参阅下面的脚本以运行示例并并排比较它们。似乎您希望表格中的数字与马赛克图中的单元格对齐,以便于查看和引用。我找不到任何以前的讨论。似乎无法更改列联表,它是一个 CrossTabBox,它不适合更改任何内容。下面的脚本在顶部有解决方法,即复制切换 x 和 y 时创建的表格,然后将其附加到马赛克图中。还必须对值排序进行一些处理才能使其对齐。将添加到 JMP 愿望清单。我确实在 2018 年 JMP 发现峰会上与 EA 实验室和开发人员进行了讨论。
在 R 语言上找到一些帖子,其中可以使用 dir() 参数并指定水平和垂直,而 RStudio 中的“count”输出对于方向保持不变。
# R 马赛克图示例 - 改变方向
获取wd()
员工 <- read.csv("Products.csv", TRUE, sep = ",",
na.字符串 = TRUE)
计数 <- 表(员工$EnglishCountryRegionName,
员工$颜色)
数数
马赛克图(count,main =“国家马赛克图”,
sub =“按国家/地区划分的产品颜色”,
xlab = “颜色”
ylab = “国家”,
拉斯= 1,
dir = c(“h”, “v”),
颜色=“天蓝色2”,
边框 = “巧克力”)
// 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 JMP16");
你好@Vball247 , 谢谢你的建议! 我们已收到您的请求并将予以考虑。
嗨赫格杜斯1。 很好的建议! 但我还必须再做一步。 当我做马赛克图时,Y 轴是从 0 到 1 或百分比,但是当我单击 Y 轴时,最小值、最大值和逆序对我来说是灰色的,没有选项可供选择。 我必须选择“水平马赛克”,然后执行您的建议,这可以更改一个分类的顺序,同时保留累积轴。 最终与下面的表格相符。
Contingency(
Y( :age ),
X( :sex ),
Contingency Table,
Horizontal Mosaic( 1 ), // swap the axes
SendToReport( Dispatch( {"Mosaic Plot"}, "1", ScaleBox, {Reversed Scale} ) ) // reverse the categories to match table
);
有一个更简单的解决方案。
在马赛克图的 Y 轴中,选择反向轴。
我的请求/愿望:使此方向成为应急平台首选项中的一个选项。