biplot.prcomp用点代替标签

biplot.prcomp用点代替标签,r,plot,pca,R,Plot,Pca,我想为prcomp主成分分析创建一个biplot。但是,因为我的矩阵中有很多行,所以我不想打印所有这些标签。我最关心的是整体分布,而不是所有的细节。所以我只想把数据点表示为点,没有标签。我该怎么做 现在我做了这样的事情: biplot(prcomp(data, scale.=T), xlabs=rep(".", nrow(data))) 但我担心的是,这是在使用字符。,它将位于文本的基线处,因此与实际应该位于的位置有一点距离,从而给出一个整体移动的外观。这种担心有道理吗?如何避免这种情况?有没

我想为
prcomp
主成分分析创建一个
biplot
。但是,因为我的矩阵中有很多行,所以我不想打印所有这些标签。我最关心的是整体分布,而不是所有的细节。所以我只想把数据点表示为点,没有标签。我该怎么做

现在我做了这样的事情:

biplot(prcomp(data, scale.=T), xlabs=rep(".", nrow(data)))
但我担心的是,这是在使用字符
,它将位于文本的基线处,因此与实际应该位于的位置有一点距离,从而给出一个整体移动的外观。这种担心有道理吗?如何避免这种情况?有没有更简单的选择

对于任何将异常值标记在远离图表中心的位置的解决方案,除了到处都是点之外,还有额外的积分。但这听起来确实很棘手

查看
stats:::biplot.default
,以及它如何调用
plot(x,type=“n”,…)
,很可能是绘制点本身并不是有意的,所以我担心我所要求的可能甚至是不可能的。但是也许有一个技巧可以解决这个问题。

我认为你的“.”将垂直居中,而不是移到底部(我想这是你所关心的?)

比较不同的xlabs:

set.seed(123) #thanks to MvG for spotting
data = cbind(rnorm(25), rnorm(25), rnorm(25))
biplot(prcomp(data, scale.=T), xlabs=rep(".", nrow(data))) #your code
X11()
biplot(prcomp(data, scale.=T), xlabs=rep("·", nrow(data))) #"middle dot"
X11()
biplot(prcomp(data, scale.=T), xlabs=rep("˙", nrow(data))) #"dot above"
X11()
biplot(prcomp(data, scale.=T), xlabs=rep(".·˙", nrow(data))) #all three
X11()
biplot(prcomp(data, scale.=T), xlabs=rep("I", nrow(data)))

对我(R.3.0.1在WI7上),看起来情节考虑了字符的大小/形状,因为三个单点例子实际上是相同的,尽管它们相对垂直地定位,并且都出现在“I”被绘制的中间。

如果您了解如何从prcomp输出生成双抽签值(我不知道):

你可以用它做一个空白的双标图

xlabs=rep("", nrow(data))

再加上手工制作的points(),但我认为看起来是一样的。您的xlab也不限于使用您在键盘上看到的内容,因为您可以使用各种特殊字符,例如。■●▲

回答得好。事后看来,简单地测试我的担忧是否有效似乎是显而易见的,但我不知道如何打开多个窗口,这对于比较结果是至关重要的。稍后添加点听起来是一个有趣的想法,但需要复制
biplot.prcomp
的大部分,所有
lam
的计算。我不确定set.seed=123是否有意义;我想应该是
set.seed(123)
。这是一个函数,不是一个变量。
xlabs=rep("", nrow(data))