filled.contour
- if you have a matrix with nxm dimensions and every entry represents a value of interest and the indices of the entry describe the position, then you can use filled.contour() to visualize the matrix
- first we create a simple matrix to demonstrate how it works:
x <- y <- 1:10 # create two vectors with the integers from 1 to 10 z <- outer(x,y) # create a matrix as the outer product of the two vectors z # show the matrix
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 1 2 3 4 5 6 7 8 9 10 [2,] 2 4 6 8 10 12 14 16 18 20 [3,] 3 6 9 12 15 18 21 24 27 30 [4,] 4 8 12 16 20 24 28 32 36 40 [5,] 5 10 15 20 25 30 35 40 45 50 [6,] 6 12 18 24 30 36 42 48 54 60 [7,] 7 14 21 28 35 42 49 56 63 70 [8,] 8 16 24 32 40 48 56 64 72 80 [9,] 9 18 27 36 45 54 63 72 81 90 [10,] 10 20 30 40 50 60 70 80 90 100
- now let us plot the matrix:
filled.contour(z)
- the matrix is mapped to a 1x1 square: the entry with the indices (1,1) and the value 1 to the point with the coordinates (0,0) and the entry with the indices (10,10) and the value (100) to the points with the coordinates (1,1); if you want to change the axes you can add a x and a y argument to the plot;so let's use the vectors x and y from above (with the entries 1 to 10) and also change to colors
- filled.contour() uses the cm palette as default (cyan for low, magenta for heigh values);
filled.contour(x=x,y=y,z, col=heat.colors(20))
- more palettes you find here
And a last example
my.seq <- seq(-pi, pi, length=50) # creating a vector as a sequence from 0 to 2*pi with 50 entries my.seq2 <- seq(-0.5*pi, 1.5*pi, length=50) # creating a vector as a sequence from 0 to 2*pi with 50 entries my.matrix <- outer(sin(my.seq),cos(my.seq2)) # creating the matrix using sin, cos and outer filled.contour(x=my.seq, y=my.seq2,my.matrix, plot.title=title(main="Products Sin(x)*Cos(y) on [-Pi,Pi]x[-0.5Pi,1.5Pi]", xlab="x", ylab="y"), key.title=title(main="products"), col=terrain.colors(20))
No comments :
Post a Comment