使用自动绘图绘制PCA双绘图:修改箭头粗细

时间:2018-10-04 13:45:22

标签: r pca ggfortify biplot

我正在使用autoplot中的ggfortify函数,如以下使用iris.pca的代码所示。这个例子只有三个变量(因此加载了3个变量),但是我的数据集有更多变量,所以我希望我可以减小箭头的大小以使图更易读。我认为默认大小是1磅,我想将其减小到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()

1 个答案:

答案 0 :(得分:3)

问题在于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