library("distribs") ; xplore library, contains "normgen"
library("graphic") ; graphic library, contains "grcontour2"
mu=#(3,2) ; mean vector
a=#(1,-1.5)
b=#(-1.5,4) ; covariance matrix
sigma=a~b
x=gennorm(200, mu, sigma) ; creates normal sample
di=createdisplay(1, 2)
show(di, 1, 1, x ) ; shows point cloud
setgopt(di, 1, 1, "title", "normal sample","xlabel","X1","ylabel","X2")
xmin=min(x)
xrange=max(x)-min(x)
ng=30 ; number of grid points in each dimension
ng=ng*matrix(cols(x))
d=xrange'./(ng-1) ; binwidth in each dimension
xg=grid(xmin',d,ng)
f=exp(-sum(((xg-mu')*inv(sigma)).*(xg-mu'),2)/2)/sqrt(det(2*pi*sigma)); normal density
c =(1:9)/10*max(f) ; computes contours at 10%..90% level
color=(0:6)|(0:1)
g = grcontour2(xg~f,c,color) ; macro for contours
show(di, 1, 2, g) ; shows contour ellipses
setgopt(di, 1, 2, "title", "contour ellipses","xlabel","X1","ylabel","X2")