TeachingDemos (version 2.12)

squishplot: Squish the plotting area to a specified aspect ratio

Description

Adjusts the plotting area to a specific aspect ratio. This is different from using the asp argument in that it puts the extra space in the margins rather than inside the plotting region.

Usage

squishplot(xlim, ylim, asp = 1, newplot=TRUE)

Value

Invisible list containing the 'plt' values from par that were in place before the call to squishplot that can be used to reset the graphical parameters after plotting is finished.

Arguments

xlim

The x limits of the plot, or the entire x vector.

ylim

The y limits of the plot, or the entire y vector.

asp

The y/x aspect ratio.

newplot

Should plot.new() be called before making the calculations.

Author

Greg Snow 538280@gmail.com

Details

This function sets the plot area of the current graph device so that the following plot command will plot with the specified aspect ratio.

This is different from using the asp argument to plot.default in where the created white space goes (see the example). Using plot.default will place the whitespace within the plotting region and can result in the axes and annotations being quite far from the actual data. This command sets up the plotting region so that the extra whitespace is in the margin areas and moves the axes and annotations close to the data.

Any other desired parameter settings or resizing of the graphics device should be set before calling squishplot, especially settings dealing with multiple figures or margin areas.

After plotting, the parameters need to be reset or later plots may come out wrong.

See Also

Examples

Run this code
x <- rnorm(25, 10, 2 )
y <- 5 + 1.5*x + rnorm(25,0,2)

par(mfrow=c(1,3))
plot(x,y)

op <- squishplot(x,y,1)
plot(x,y)
par(op)

plot(x,y, asp=1)

Run the code above in your browser using DataCamp Workspace