mat <- matrix(c(1,1,1,1,3,2,1,2,2), 3, 3) eigens <- eigen(mat) evs <- eigens$values evecs <- eigens$vectors a <- evs[1] b <- evs[2] c <- evs[3] x0 <- 5 y0 <- 10 z0 <- 3 alpha <- atan(evecs[ , 1][2] / evecs[ , 1][1]) theta <- seq(0, 2 * pi, length=(1000)) # See Timm, Multivariate Analysis, page 62, Figure 1.6.2 # See Lay, Linear Algebra, third edition, page 84 x <- x0 + a * cos(theta) * cos(alpha) - b * sin(theta) * sin(alpha) y <- y0 + a * cos(theta) * sin(alpha) + b * sin(theta) * cos(alpha) z <- z0 + a * cos(theta) * sin(alpha) + c * sin(theta) * cos(alpha) plot(x, y, z, type = "l", main = expression("x y z"), asp = 1, xlim=c(-5,20),ylim=c(-5,20), zlim=-5,20,xaxs = 'i', yaxs = 'i', zaxs='i') error: Error in strsplit(log, NULL) : non-character argument