[R] Making a picture that is wide and small height

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Dec 3 09:23:40 CET 2008

On Tue, 2 Dec 2008, David Epstein wrote:

> How do I make a picture that is a horizontal strip? I tried
>> plot(x=c(1,2,3,4),y=c(1,1,1,1)) #works but screen image is square.
>> pdf("ratio.pdf",height=1,width=6)
>> plot(x=c(1,2,3,4),y=c(1,1,1,1))
> I got the following error message:
> Error in plot.new() : figure margins too large
> Is it possible to produce an on-screen picture that is a horizontal strip?
> (I use Mac Os X 10.4.11, and quartz().) What about pdf?
> I have spent many hours trawling through the online help information and
> this forum, without success. Where is this explained?

In 'An Introduction to R', chapter 12.  You need to use smaller margins, 
and either omit the axes or use smaller text (reduce 'pointsize') which 
will do so automatically.  E.g.

> quartz(height=1, width=6, pointsize=5)
> plot(x=c(1,2,3,4),y=c(1,1,1,1))

works for me, and you might want something like

> par(mar=rep(2.1,4))
> plot(x=c(1,2,3,4),y=c(1,1,1,1), xlab="", ylab="")

> Thanks for any help
> David

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-help mailing list