我想用封装factominer绘制PCA的结果。当绘制PCA时,最好调整图形的大小,使其H / L比率与每个轴解释的%方差成比例。
所以我首先尝试通过拉伸窗口来调整图形的大小:它明显失败并将点保持在中间而不是拉伸它们。
if([jsonArr count]>0){
dict=[jsonArr objectAtIndex:0];
//Do whatever you want, your jsonArr is valid as it has objects
}
else{
//Perform necessary action here as your jsonArr is empty
}
然后我尝试强制修复library(FactoMineR)
out <- PCA(mtcars)
和xlim
个参数(ylim
)
?plot.PCA
同样的问题,xlim限制不受尊重......
有人可以解释这种行为并知道如何修复它吗?
答案 0 :(得分:1)
您所看到的是plot
内plot.PCA
来电的结果:
plot(0, 0, main = titre, xlab = lab.x, ylab = lab.y,
xlim = xlim, ylim = ylim, col = "white", asp = 1, ...)
调用 plot
时参数asp
设置为1
,这可以保证 y / x 比率保持不变,因此当您尝试调整大小时在窗口中,xlim
被重新计算。
在plot.window
中,您可以找到&#34;含义&#34; asp
:
如果asp是有限正值,则设置窗口,使得x方向上的一个数据单元的长度等于y方向上的asp *一个数据单元。
你可以尝试
plot(0, 0, main = "", xlab = "", ylab = "", xlim = c(-6, 6), ylim = c(-4, 4), col = "white", asp = 1)
并调整窗口大小,然后与
相同plot(0, 0, main = "", xlab = "", ylab = "", xlim = c(-6, 6), ylim = c(-4, 4), col = "white")
看到差异。