R/Contour Plots
(moved formatting around) |
(added more example code) |
||
Line 39: | Line 39: | ||
− | Better yet, Carey McGilliard and Bridget Ferris made further modifications to allow multiple filled contours per page and the addition of the legend on the side to makes figures like the one | + | Better yet, Carey McGilliard and Bridget Ferris made further modifications to allow multiple filled contours per page and the addition of the legend on the side to makes figures like the one below. |
{{Rcode|filled.contour3.R|filled.contour3.R}} | {{Rcode|filled.contour3.R|filled.contour3.R}} | ||
{{Rcode|filled.legend.R|filled.legend.R}} | {{Rcode|filled.legend.R|filled.legend.R}} | ||
Line 45: | Line 45: | ||
[[Image:McGilliard figure.png | center | thumb | 300 px | Good contour plot]] | [[Image:McGilliard figure.png | center | thumb | 300 px | Good contour plot]] | ||
+ | An example of how these are combined with the aid of "plt" is found in the following file from Carey: | ||
+ | {{Rcode|Example 4 panel contour plot with one legend.R|Example 4 panel contour plot with one legend.R}} | ||
Revision as of 00:03, 10 September 2010
Contour Plots
R has two built-in functions for contour plots, contour, and filled.contour. Examples of their use can be seen from the code below:
x <- 1:50 y <- 1:70 z <- matrix(expand.grid(x,y)$Var1^2 + expand.grid(x,y)$Var2^2,50,70) # plain contour(x,y,z) # adjusting levels mylevels <- seq(0,7500,500) contour(x,y,z,levels=mylevels,xaxs='i',yaxs='i') # filled contours filled.contour(x,y,z,color.palette=heat.colors) filled.contour(x,y,z,col=grey(seq(0,1,length=length(mylevels)))) # add this to line above and see bad match contour(x,y,z,levels=mylevels,add=T)
However, it can be frustrating to realize that the way filled.contour was implemented does not allow removing the key or overplotting with lines and labels. To realize this, add the lines below to the code above to create the bad figure above left.
filled.contour(x,y,z,col=grey(seq(0,1,length=length(mylevels)))) # add this to line above and see bad match contour(x,y,z,levels=mylevels,add=T)
A solution is to use the modified function, filled.contour2.R, as follows to create the better figure above right.
# filled.contour function modified to not have key filled.contour2(x,y,z,col=grey(seq(0.3,1,length=length(mylevels)))) # now we can successfully add lines and values contour(x,y,z,levels=mylevels,add=T)
Better yet, Carey McGilliard and Bridget Ferris made further modifications to allow multiple filled contours per page and the addition of the legend on the side to makes figures like the one below.
filled.contour3.R
filled.legend.R
An example of how these are combined with the aid of "plt" is found in the following file from Carey:
Example 4 panel contour plot with one legend.R