Specify Width and Height of Plot

82,484

Solution 1

I usually set this at the start of my session with windows.options:

windows.options(width=10, height=10)

# plot away
plot(...)

If you need to reset to "factory settings":

dev.off()
windows.options(reset=TRUE)

# more plotting
plot(...)

Solution 2

You do that in the device, e.g.

x11(width=4, height=6)

and similarly for the file-based ones

pdf("/tmp/foo.pdf", width=4, height=6)

You can read the physical size via par("cin") etc but not set it.

Solution 3

Neither solution works in Jupyter notebooks. Here is a general approach that works in any environment:

options(repr.plot.width=6, repr.plot.height=4)

Just keep the following function handy:

set_plot_dimensions <- function(width_choice, height_choice) {
        options(repr.plot.width=width_choice, repr.plot.height=height_choice)
        }

EXAMPLE

Data

 x <-  c(37.50,46.79,48.30,46.04,43.40,39.25,38.49,49.51,40.38,36.98,40.00,38.49,37.74,47.92,44.53,44.91,44.91,40.00,41.51,47.92,36.98,43.40)

Call function with dimensions, and draw plot:

set_plot_dimensions(6, 4)
show_distribution(x, 'test vector')

enter image description here

set_plot_dimensions(16, 4)
show_distribution(x, 'test vector')

enter image description here

Share:
82,484

Related videos on Youtube

Ryan R. Rosario
Author by

Ryan R. Rosario

Ph.D., Machine Learning (Statistics), UCLA Alum: Machine Learning Engineer at Facebook I wear many hats, the largest being Computer Scientist hat. My languages: R, Python, C++, Java Applications: text mining, data mining, machine learning.

Updated on July 09, 2022

Comments

  • Ryan R. Rosario
    Ryan R. Rosario almost 2 years

    I have a panel containing three plots. How can I use par to specify the width and height of the main panel so it is always at a fixed size?

  • ariddell
    ariddell over 14 years
    This is Windows specific, I think.
  • fbmd
    fbmd over 11 years
    For completeness, width and height are specified in inch.
  • Patrick Williams
    Patrick Williams about 8 years
    As @fbmd mentioned, but also if you specify unit='in', you must also specify res='xx' where xx is 72, for example.
  • Taz
    Taz almost 7 years
    Does not work on Mac OSX: Browse[1]> windows.options(width=10, height=10) Error in windows.options(width = 10, height = 10) : could not find function "windows.options"