【问题标题】:How to display two PCA graph together?如何同时显示两个 PCA 图?
【发布时间】:2020-02-10 02:47:45
【问题描述】:

我对 R 比较陌生,我不太确定如何实现这一点。现在我使用 prcomp 对两个不同的数据集执行 PCA。

data1.pr <- prcomp(data1, center=TRUE, scale=TRUE)
data2.pr <- prcomp(data2, center=TRUE, scale=TRUE)

我使用autoplot(data1.pr, frame = TRUE)autoplot(data2.pr, frame = TRUE) 绘制了图表,它显示了data1 和data2 的结果:

现在,我如何将这两张图片组合成一个不同组的情节?我搜索了一些答案,似乎geom 就是这样一种解决方案。但是,我不太确定如何通过分组来实现这一点。任何帮助将不胜感激!

【问题讨论】:

  • data1 的 PC1 不是 data2 的 PC1。因此,您可以将 PC 并排绘制在图上,但如果您想使用相同的图,请小心。
  • data1 的 PC1 可从data1.pr$x[, 1] 获得,PC2 可从data1.pr$x[, 2] 获得,依此类推。所以你可以使用data1.pr$xdata1 绘制PC。
  • 就像 Suren 说的,如果你使用不同的数据来做 PCA,很可能你会得到不同的主成分(除非你有相同的变量并且从相同的人口)。因此,将两个 PCA 粘贴到单个 plot 中并不是一个好主意。但是,您可以使用ggplot2 facets 或使用cowplot 包将这两个图并排放置到同一个figure
  • 或者使用patchwork

标签: r ggplot2 plot pca


【解决方案1】:

使用以下库来控制绘图的大小。

library(repr) 
options(repr.plot.width = 5, repr.plot.height = 4)  # To set plot size

然后使用以下代码并排输出您的图 - 生成一个图。 .您需要调整高度和宽度(上图)以获得所需的结果。

par(mfrow = c(1, 2)  )       # To combine two plots

plot(data1)
plot(data2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 2012-05-09
    • 1970-01-01
    相关资源
    最近更新 更多