首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >biplot.prcomp的点而不是标签

biplot.prcomp的点而不是标签
EN

Stack Overflow用户
提问于 2014-03-14 11:28:45
回答 1查看 10.7K关注 0票数 2

我想为biplot主组件分析创建一个prcomp。但是,由于我的矩阵中有很多行,所以我不想打印所有这些标签。我主要关心的是总体分布,而不是所有细节。所以我只想用点来表示数据点,而不是标签。我该怎么做?

现在我做了这样的事情:

代码语言:javascript
复制
biplot(prcomp(data, scale.=T), xlabs=rep(".", nrow(data)))

但我担心的是,这是使用字符'.',它将位于文本的基线上,并且距离实际的点有很小的距离,从而给出了一个整体移位的外观。这种担心有道理吗?如何才能避免这种情况?还有更简单的选择吗?

除了到处都有点点外,任何标出远离图表中心的离群点的解决方案都可以得到额外的积分。但这听起来确实很棘手。

看看stats:::biplot.default,以及它如何调用plot(x, type = "n", …),很可能并不打算自己绘制点,所以我担心我想要的可能甚至是不可能的。但也许有某种技巧可以解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-14 16:59:26

我觉得你的“。”将是垂直中心,而不是移动到底部(我认为这是你所关心的?)

比较不同的实验室:

代码语言:javascript
复制
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)))

在我看来(Win7上的R-3.0.1),情节似乎考虑到了角色的大小/形状,因为三个单点示例实际上是相同的,尽管它们的相对垂直位置,而且都出现在“i”被绘制的中间。

如果您了解如何从prcomp输出生成双图值(我不理解):

代码语言:javascript
复制
str(prcomp(data, scale.=T)

你可以用

代码语言:javascript
复制
xlabs=rep("", nrow(data))

然后加上人工生成的points(),但是我认为它看起来是一样的。您的xlab也不限于使用键盘上可以看到的内容,因为您可以使用各种特殊字符,例如▲。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22403753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档