There is a software called Brandmap$^1$ which can return a biplot from a matrix. I am trying to run the same result in R but the coordinates are not the same. First I input a simple matrix into the software. x1 x2 x3 a 6 3 7 b 8 6 7 c 9 4 2 There were several options of data centering and I chose to center the data by subtracting every number in the matrix from its (row mean*column mean/grand mean). x1 x2 x3 a -1.076923 -1.00 2.0769231 b -1.288462 0.75 0.5384615 c 2.365385 0.25 -2.6153846 Then I chose column factorization to create a biplot. I guess it means a covariance biplot which the singular values are totally assigned to the right singular vectors. It showed the coordinates: dim1 dim2 x1 -2.81 -0.73 x2 -0.55 1.15 x3 3.36 -0.42 a 1.58 -1.78 b 0.75 2.26 c -2.33 -0.48 I tried to calculate the same results in R. > P = matrix(c(6,8,9,3,6,4,7,7,2),nrow=3) > row.names(P)=c("a","b","c") > colnames(P)=c("x1","x2","x3") > P x1 x2 x3 a 6 3 7 b 8 6 7 c 9 4 2 > r1 = matrix(rep(1,3)) #row sum > c1 = matrix(rep(1,3)) #column sum > r = P%*%r1 > c = t(P)%*%c1 > L = P - r%*%t(c)/sum(P) #subtract row mean*column mean/grand mean > L x1 x2 x3 a -1.076923 -1.00 2.0769231 b -1.288462 0.75 0.5384615 c 2.365385 0.25 -2.6153846 > S = svd(L) > S$v%*%diag(S$d) [,1] [,2] [,3] [1,] 2.8077724 0.7289408 -8.10596e-17 [2,] 0.5487104 -1.1506159 -8.10596e-17 [3,] -3.3564829 0.4216750 -8.10596e-17 > S$u [,1] [,2] [,3] [1,] -0.5420705 0.6105950 0.5773503 [2,] -0.2577555 -0.7747443 0.5773503 [3,] 0.7998260 0.1641494 0.5773503 I found that the values in the right vector are the same but with negative sign and all the values in the left vector are multiplied by -2.918. I am not sure if there is any weighting in the calculation of that software. What kind of adjustment I can try so that I can run the same results in R? ---------- $^1$ Note from @ttnphns: I suppose this software does correspondense analysis, not just arbitrary biplot. CA is very often used in brand research.