Проблема в том, что 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
Это, по сути, вручную создает эстетику размера для линий стрелок и сужает острые концы стрелок: