R plot() Function - Learn By Example (2024)

An effective and accurate data visualization is an important part of a statistical analysis. It can make your data come to life and convey your message in a powerful way.

R has very strong graphics capabilities that can help you visualize your data.

The plot() function

In R, the base graphics function to create a plot is the plot() function. It has many options and arguments to control many things, such as the plot type, labels, titles and colors.

Syntax

The syntax for the plot() function is:

plot(x,y,type,main,xlab,ylab,pch,col,las,bty,bg,cex,)

Parameters

The plot() function arguments
ParameterDescription
xThe coordinates of points in the plot
yThe y coordinates of points in the plot
typeThe type of plot to be drawn
mainAn overall title for the plot
xlabThe label for the x axis
ylabThe label for the y axis
pchThe shape of points
colThe foreground color of symbols as well as lines
lasThe axes label style
btyThe type of box round the plot area
bgThe background color of symbols (only 21 through 25)
cexThe amount of scaling plotting text and symbols
Other graphical parameters

Create a Simple Plot

To get started with plot, you need a set of data to work with.

Let’s consider the built-in pressure dataset as an example dataset. It contains observations of the vapor pressure of mercury over a range of temperatures.

# First six observations of the 'Pressure' datasethead(pressure) temperature pressure1 0 0.00022 20 0.00123 40 0.00604 60 0.03005 80 0.09006 100 0.2700

To create a plot just specify the dataset in plot() function.

# Plot the 'pressure' datasetplot(pressure)
R plot() Function - Learn By Example (1)

Change the Shape and Size of the Points

You can use the pch (plotting character) argument to specify symbols to use when plotting points.

Here’s a list of symbols you can use.

R plot() Function - Learn By Example (2)
# Change the shape of the pointsplot(pressure, pch=17)
R plot() Function - Learn By Example (3)

For symbols 21 through 25, you can specify border color using col argument and fill color using bg argument.

# Change the border color to blue and background color to lightblueplot(pressure, pch=21, col="blue", bg="lightblue")
R plot() Function - Learn By Example (4)

To alter the size of the plotted characters, use cex (character expansion) argument.

# Scale the data points by 1.2plot(pressure, cex=1.2)

Changing the Color

You can change the foreground color of symbols using the argument col.

# Change the color of symbols to redplot(pressure, col="red")
R plot() Function - Learn By Example (6)

R has a number of predefined colors that you can use in graphics. Use the colors() function to get a complete list of available names for colors.

# List of predefined colors in Rcolors()[1] "white" "aliceblue" "antiquewhite" [4] "antiquewhite1" "antiquewhite2" "antiquewhite3"...

Or you can refer the following color chart.

R plot() Function - Learn By Example (7)

You can specify colors by index, name, hexadecimal, or RGB value. For example col=1, col="white", and col="#FFFFFF" are equivalent.

Different Plot Types

You can change the type of plot that gets drawn by using the type argument.

Here’s a list of all the different types that you can use.

Plot Types in R
ValueDescription
“p”Points
“l”Lines
“b”Both points and lines
“c”The lines part alone of “b”
“o”Both points and lines “overplotted”
“h”Histogram like (or high‐density) vertical lines
“s”Step plot (horizontal first)
“S”Step plot (vertical first)
“n”No plotting

For example, to create a plot with lines between data points, use type="l"; to draw both lines and points, use type="b".

A series of graphics showing different types is shown below.

R plot() Function - Learn By Example (8)

Adding Titles and Axis Labels

You can add your own title and axis labels easily by specifying following arguments.

ArgumentDescription
mainMain plot title
xlabx-axis label
ylaby-axis label
plot(pressure, main = "Vapor Pressure of Mercury", xlab = "Temperature (deg C)", ylab = "Pressure (mm of Hg)")
R plot() Function - Learn By Example (9)

The Axes Label Style

By specifying the las (label style) argument, you can change the axes label style. This changes the orientation angle of the labels.

ValueDescription
0The default, parallel to the axis
1Always horizontal
2Perpendicular to the axis
3Always vertical

For example, to change the axis style to have all the axes text horizontal, use las=1

plot(pressure, las = 1)
R plot() Function - Learn By Example (10)

The Box Type

Specify the bty (box type) argument to change the type of box round the plot area.

ValueDescription
“o”(default) Draws a complete rectangle around the plot.
“n”Draws nothing around the plot.
“l”, “7”, “c”, “u”, or “]”Draws a shape around the plot area.
# Remove the box round the plotplot(pressure, bty="n")
R plot() Function - Learn By Example (11)

Add a Grid

The plot() function does not automatically draw a grid. However, it is helpful to the viewer for some plots. Call the grid() function to draw the grid once you call the plot().

plot(pressure)grid()
R plot() Function - Learn By Example (12)

Add a Legend

You can include a legend to your plot – a little box that decodes the graphic for the viewer. Call the legend() function, once you call the plot().

# Add a legend to the top left cornerplot(pressure, col="red", pch=19)points(pressure$temperature/2, pressure$pressure,col="blue", pch=17)legend("topleft", c("line 1","line 2"), pch=c(19,17), col=c("red","blue"))
R plot() Function - Learn By Example (13)

The position of the legend can be specified using the following keywords : “bottomright”, “bottom”, “bottomleft”, “left”, “topleft”, “top”, “topright”, “right” and “center”.

The effect of using each of these keywords is shown below.

R plot() Function - Learn By Example (14)

Add Points to a Plot

You can add points to a plot with the points() function.

For example, let’s create a subset of pressure containing temperatures greater than 200 °C and add these points to the plot.

plot(pressure, col = "red")points(pressure[pressure$temperature > 200, ], col = "red", pch = 19)
R plot() Function - Learn By Example (15)

Add Lines to a Plot

You can add lines to a plot in a very similar way to adding points, except that you use the lines() function to achieve this.

plot(pressure)lines(pressure$temperature/2, pressure$pressure)
R plot() Function - Learn By Example (16)

You can change the line type using lty argument; and the line width using lwd argument.

# Change the line type and line widthplot(pressure)lines(pressure$temperature/2, pressure$pressure, lwd=2, lty=3)
R plot() Function - Learn By Example (17)

Here’s a list of line types you can use.

R plot() Function - Learn By Example (18)

There’s another function called abline() which allows you to draw horizontal, vertical, or sloped lines.

# Draw a dotted horizontal line at 247 and vertical line at 300plot(pressure)abline(h= 247, v=300, col="red", lty=2)
R plot() Function - Learn By Example (19)

Label Data Points

Use the text() function to add text labels at any position on the plot.

The position of the text is specified by the pos argument. Values of 1, 2, 3 and 4, respectively places the text below, to the left of, above and to the right of the specified coordinates.

# Add text labels above the coordinatesplot(pressure, pch=19, col="red")text(pressure, labels=pressure$pressure, cex=0.7, pos=3, col="blue")
R plot() Function - Learn By Example (20)

Set Axis Limits

By default, the plot() function works out the best size and scale of each axis to fit the plotting area. However, you can set the limits of each axis quite easily using xlim and ylim arguments.

# Change the axis limits so that the x-axis and y-axis ranges from 0 to 500plot(pressure, ylim=c(0,500), xlim=c(0,500))
R plot() Function - Learn By Example (21)

Display Multiple Plots on a Single Page

By using the mfrow graphics parameter, you can display multiple plots on the same graphics page.

To use this parameter, you need to pass a two-element vector, specifying the number of rows and columns. Then fill each cell in the matrix by repeatedly calling plot.

For example, mfrow=c(1, 2) creates two side by side plots.

par(mfrow = c(1, 2))plot(cars, main="Speed vs Distance", col="red")plot(mtcars$mpg, mtcars$hp, main="HP vs MPG", col="blue")
R plot() Function - Learn By Example (22)

Once your plot is complete, you need to reset your par() options. Otherwise, all your subsequent plots will appear side by side.

# Reset the mfrow parameterpar(mfrow = c(1,1))

Save a Plot to an Image File

To save a plot to an image file, you have to do three things in sequence:

  • Call a function to open a new graphics file, such as png(), jpg() or pdf().
  • Call plot() to generate the graphics image.
  • Call dev.off() to close the graphics file.
# Save a plot as a png filepng(filename="myPlot.png", width=648, height=432)plot(pressure, col="slateblue1", pch=19, type="b", main = "Vapor Pressure of Mercury", xlab = "Temperature (deg C)", ylab = "Pressure (mm of Hg)")dev.off()

myPlot.png

R plot() Function - Learn By Example (23)

Remember that the file will be saved to your current working directory, unless you specify an absolute file path.

R plot() Function - Learn By Example (2024)

References

Top Articles
Latest Posts
Article information

Author: Rev. Leonie Wyman

Last Updated:

Views: 5773

Rating: 4.9 / 5 (79 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Rev. Leonie Wyman

Birthday: 1993-07-01

Address: Suite 763 6272 Lang Bypass, New Xochitlport, VT 72704-3308

Phone: +22014484519944

Job: Banking Officer

Hobby: Sailing, Gaming, Basketball, Calligraphy, Mycology, Astronomy, Juggling

Introduction: My name is Rev. Leonie Wyman, I am a colorful, tasty, splendid, fair, witty, gorgeous, splendid person who loves writing and wants to share my knowledge and understanding with you.