3D pca中的”line”及其含义是什么?

huangapple go评论112阅读模式
英文:

What is the line in a 3D pca and its meaning?

问题

最近,我专注于3D PCA。我知道如何通过R中的不同包(如plotly、rgl等)生成3D PCA图。

但是我有一个关于下面图片的小问题:

我不知道如何在R中像图片中所示添加垂直线。

它只是用于定位PC1上的样本点吗?还是有其他特殊的含义?

这里有一个简单的示例数据和代码:
但我不确定是否通过这个包添加了垂直线。

  1. library(rgl)
  2. pc <- prcomp(~ . - Species, data = iris, scale = TRUE)
  3. scores = as.data.frame(pc$x)
  4. plot3d(scores[,1:3],
  5. main="ABC")

我希望有人能给我一些建议或解决方案。

提前感谢。

英文:

Recently, I focused on 3D PCA. And I know how to produce 3D PCA plots through different packages in R, such as plotly, rgl and so on.

But I have a small question from the picture below:

I don't know how to add vertical lines in R just as the picture showed.

And it is only used to locate sample points on PC1 ? Or other special meaning ?

Here is a simple example data and code:
But I am not sure vertical lines are added by this package.

  1. library(rgl)
  2. pc &lt;- prcomp(~ . - Species, data = iris, scale = TRUE)
  3. scores = as.data.frame(pc$x)
  4. plot3d(scores[,1:3],
  5. main=&quot;ABC&quot;)

I hope somebody could give me some advice or solutions.

Thanks in advance.

3D pca中的”line”及其含义是什么?

答案1

得分: 2

以下是翻译好的内容:

这不太美观,但要在rgl中重现类似的效果,您可以使用segments3d:

  1. library(rgl)
  2. pc <- prcomp(~ . - Species, data = iris, scale = TRUE)
  3. scores = as.data.frame(pc$x)
  4. plot3d(scores[,1:3],
  5. main="ABC")
  6. lims <- apply(scores[,1:3], 2, range)
  7. apply(scores[,1:3], 1, FUN = function(X){
  8. segments3d(
  9. x = rep(X[1], 2),
  10. y = rep(X[2], 2),
  11. z = c(X[3], lims[1,3]))
  12. })

您可能希望考虑使用persptrans3d以获得更多控制。

英文:

This is not pretty, but to reproduce something like this in rgl, you can used segments3d:

  1. library(rgl)
  2. pc &lt;- prcomp(~ . - Species, data = iris, scale = TRUE)
  3. scores = as.data.frame(pc$x)
  4. plot3d(scores[,1:3],
  5. main=&quot;ABC&quot;)
  6. lims &lt;- apply(scores[,1:3], 2, range)
  7. apply(scores[,1:3], 1, FUN = function(X){
  8. segments3d(
  9. x = rep(X[1], 2),
  10. y = rep(X[2], 2),
  11. z = c(X[3], lims[1,3]))
  12. })

3D pca中的”line”及其含义是什么?

You may want to look into using persp and trans3d for more control.

huangapple
  • 本文由 发表于 2023年6月26日 21:09:58
  • 转载请务必保留本文链接:https://go.coder-hub.com/76557013.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定