r - 使用自动绘图绘制 PCA 双图 : modify arrow thickness

标签 r pca ggfortify biplot

我正在使用 ggfortify 中的 autoplot 函数,如下面使用 iris.pca 的代码所示。这个例子只有三个变量(因此有 3 个加载),但我的数据集有更多的变量,所以我希望可以减小箭头的大小以使绘图更具可读性。我认为默认大小是 1 pt,我想将其减小到 0.5 之类的值。尽管有修改加载颜色和标签大小的参数,但我找不到调整箭头粗细的方法。有谁知道该怎么做吗?

library(ggplot2)
library(ggfortify)

df <- iris[c(1, 2, 3, 4)]
iris.pca<-(prcomp(df))

autoplot(iris.pca, data=iris, colour="Species", loadings=TRUE, loadings.colour = "black")+
  scale_colour_manual(values=c("forestgreen","red","blue"))+
  scale_fill_manual(values=c("forestgreen","red","blue"))+
  scale_shape_manual(values=c(25,22,23))+
  theme_bw()

最佳答案

问题是 ggfortify 已经创建了一个 ggplot2 对象。因此,如果您不想手动重新创建绘图(这将是这里更清晰的解决方案),则必须按以下方式修改现有绘图:

旧代码

library(ggplot2)
library(ggfortify)

df <- iris[c(1, 2, 3, 4)]
iris.pca<-(prcomp(df))

d <- autoplot(iris.pca, data=iris, colour="Species", loadings=TRUE, loadings.colour = "black", scale = 1)+
  scale_colour_manual(values=c("forestgreen","red","blue")) +
  scale_fill_manual(values=c("forestgreen","red","blue")) +
  scale_shape_manual(values=c(25,22,23))+
  theme_bw()

修改

d$layers[[2]]$aes_params$size <- 0.5
d$layers[[2]]$geom_params$arrow$length <- unit(6, units = "points")
d

这本质上是手动创建箭头线的尺寸美感,并缩小箭头的尖头:Resulting Plot

关于r - 使用自动绘图绘制 PCA 双图 : modify arrow thickness,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52648355/

相关文章:

python - word2vec 嵌入上的 PCA

r - R中的autoplot函数和plot函数有什么区别

R ggplot2 问题 - 使用因素

r - R中data.table的高效转换

Matlab:如何在matlab中使用PCA找到可以丢弃数据集中的哪些变量?

r - 更改由 ggfortify::autoplot 创建的 ggplot 的分面标签

r - 如何在R中指定顶点的标签

r - ggplot : how to add common x and y labels to a grid of plots

r - Z 标准化使得 PC1 和 PC2 在此 PCA 分析中完全相同 : Why?