I am learning to apply constrained ordination to community data using the *vegan* package in R. According to some materials, like [this one][1], in a scaling type 2 RDA triplot: > Angles between all vectors reflect linear correlation. It confuses me how the triplot would look like if all explanatory variables are uncorrelated. I tested in R by creating a matrix consists of 5 vectors with very low(0.001)correlations (code copied from [the second answer][2]) as explanatory variables using code below : ``` set.seed(42) require(vegan) # generate uncorrleated variables n <- 5 R <- matrix(.001, nrow = n, ncol = n) diag(R) <- 1 # Cholesky decompostion of correlation matrix Lut <- chol(R) L <- t(Lut) # Standard deviations sds <- seq(10, 1, length.out = n) # VCOV matrix Sigma <- diag(sds) %*% L %*% Lut %*% diag(sds) # Generate variables library(MASS) X <- mvrnorm(50, mu= rep(0, n), Sigma, empirical = TRUE) cor(X) #generate response variables b1=c(0.2,0.3,0.5,0.3,0.4) b2=c(0.5,-0.3,-0.2,0.7,0.8) y1=b1%*%t(X)+rnorm(10,sd=0.01) y2=b2%*%t(X)+rnorm(10,sd=0.01) #do RDA y=cbind(as.vector(y1),as.vector(y2)) X=as.data.frame(X) rd=vegan::rda(Y=X,X=y) plot(rd,scaling=2) ``` And it generates plot like this, with V1,V4 and V5 very close to each other though they have low correlations. [The plot][3] So my question is what is wrong with my understanding and how should I interpret angles between explanatory vectors in a RDA triplot? Thanks in advance. [1]: https://fukamilab.github.io/BIO202/06-B-constrained-ordination.html [2]: https://stats.stackexchange.com/questions/180654/create-uncorrelated-random-multivariate-normals [3]: https://i.sstatic.net/jRXM7.png