Sei sulla pagina 1di 3

R tutorials, multiple curves, multiple plots, same plot R Page 1 of 3

CountBio Biostatistics with R


Mathematical tools for natural sciences

Home Tutorial index Next Previous

Multiple curves on the same plot


To plot more than one curve on a single plot in R, we proceed as follows. Create the first plot using the plot()
function. For the subsequent plots, do not use the plot() function, which will overwrite the existing plot. Instead,
each one of the subsequent curves are plotted using points() and lines() functions, whose calls are similar to the plot
().

points() is a generic function to draw a sequence of points at the specified coordinates. The lines() function creates
curves by joining a sequence of given points with line segments.

In the R script shown below, we plot the curves of three data sets (x,y1),(x,y2) and (x,y3) on the same plot. The code
and the plot are shown here:

# define 3 data sets


xdata <- c(1,2,3,4,5,6,7)
y1 <- c(1,4,9,16,25,36,49)
y2 <- c(1, 5, 12, 21, 34, 51, 72)
y3 <- c(1, 6, 14, 28, 47, 73, 106 )

# plot the first curve by calling plot() function


# First curve is plotted
plot(xdata, y1, type="o", col="blue", pch="o", lty=1, ylim=c(0,110)

# Add second curve to the same plot by calling points() and lines()
# Use symbol '*' for points.
points(xdata, y2, col="red", pch="*")
lines(xdata, y2, col="red",lty=2)

# Add Third curve to the same plot by calling points() and lines()
# Use symbol '+' for points.
points(xdata, y3, col="dark red",pch="+")
lines(xdata, y3, col="dark red", lty=3)

http://www.countbio.com/web_pages/left_object/R_for_biology/R_fundamentals/multiple... 4/19/2020
R tutorials, multiple curves, multiple plots, same plot R Page 2 of 3

Multiple curves on the same plot

Adding legends to the multiple curves

Legends can be added to describe the different curves in the plot. For this, we call the legend() function after plotting
the curves. This funciton adds a legend box with appropriate legends at a desired location inside the plot. Some of
the important parameters of the legend() function are:

x, y -----> X and Y axis locations in the graph coordinates.

legend-----> A vector of string consisting of legends, typically one per graph

col -----> A vector of colors for 'col' parameter. These colors are same as the one
used in the graph

pch -----> A vector of character symbols for 'pch' parameter, same as the ones
used as 'pch' parameters in the plots.

lty -----> A vector of line types to be given to 'lty' parameter, same as the one
used for plotting curved

ncol -----> Number of columns for writing the legends. Default is one column.

For other parameters, type help() in R prompt.

While typing the vectors for legend, col and pch, the order of the plot types
have to be maintained.

Carefully note the example code below which adds legend to the plot. The resulting figure has three curves with a
legend box:

# define 3 data sets


xdata <- c(1,2,3,4,5,6,7)
y1 <- c(1,4,9,16,25,36,49)
y2 <- c(1, 5, 12, 21, 34, 51, 72)
y3 <- c(1, 6, 14, 28, 47, 73, 106 )

# plot the first curve by calling plot() function


# First curve is plotted
plot(xdata, y1, type="o", col="blue", pch="o", lty=1, ylim=c(0,110),

# Add second curve to the same plot by calling points() and lines()
# Use symbol '*' for points.

http://www.countbio.com/web_pages/left_object/R_for_biology/R_fundamentals/multiple... 4/19/2020
R tutorials, multiple curves, multiple plots, same plot R Page 3 of 3

points(xdata, y2, col="red", pch="*")


lines(xdata, y2, col="red",lty=2)

# Add Third curve to the same plot by calling points() and lines()
# Use symbol '+' for points.
points(xdata, y3, col="dark red",pch="+")
lines(xdata, y3, col="dark red", lty=3)

# Adding a legend inside box at the location (2,40) in graph coordin


# Note that the order of plots are maintained in the vectors of attr
legend(1,100,legend=c("y1","y2","y3"), col=c("blue","red","black"),
pch=c("o","*","+"),lty=c(1,2,3), n

Multiple curves on the same plot with legends

http://www.countbio.com/web_pages/left_object/R_for_biology/R_fundamentals/multiple... 4/19/2020

Potrebbero piacerti anche