[R] three plots as one JEPG?

Marc Schwartz marc_schwartz at me.com
Sat Dec 5 18:34:45 CET 2009


On Dec 5, 2009, at 11:21 AM, Walther, Alexander wrote:

> Dear List,
>
>
> i have a question concerning these device-related function (i.e.
> pdf(),jpeg(), etc.). Currently, I plot three graphs, one below the  
> other
> into a /single/ window by using par(). I would like to save this  
> figure
> now as JPEG or PNG. By now, code looks as follows:
>
>
> jepg(...)
>
> par(...)
> plot(...)
>
> par(...)
> plot(...)
>
> par(...)
> plot(...)
>
> dev.off()
>
>
> Unfortunaltely, I just get the last plot saved, the rest is dismissed.
> Does anyone have a solution for this problem?
>
> Cheers
>
> Alex


In the sequence you have above, each time you call plot(), you are  
erasing the prior plot.

What you want is:

jpeg(...)

par(mfrow = (3, 1))

plot(...)
plot(...)
plot(...)

dev.off()


That will create a plot matrix of 3 rows and 1 column, which will be  
saved to the jpeg file. Each new plot will be below the prior one.

A good way of going about this is to start by just plotting to the  
normal display device and then output to an external file. For the  
most part, the output should be similar, as long as you don't re-size  
the display device (eg. dragging a corner, etc.). With the code you  
have above, you would see right away that each new plot was clearing  
the prior one, thus knowing that this behavior was not unique to jpeg().

You can then tweak the plot as may be needed for the jpeg device.

You can also use ?layout to play around with creating differing  
arrangements of plots within a single device instance.

HTH,

Marc Schwartz




More information about the R-help mailing list