**R plot()** is a built-in generic function for plotting objects. It creates scatter plots, bar plots, box plots, time series plots, etc. depending on the arguments passed to it. For example, plot(x, y) creates a scatter plot of x and y numeric vectors.

The plot() isn’t a defined function but a placeholder for a family of related functions. What I mean by this is that a plot has many optional arguments which can be passed according to the type of object passed and your requirement.

To plot a chart of an Object in R, use the plot() function. Point and line plots can be produced using the **x** and **y** points as vectors or single numbers along with many other parameters.

**Syntax**

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

**Parameters**

The **x **is the coordinates of points in the plot.

The **y**** **is the coordinates of points in the plot.

**main:** It is an overall title for the plot.

**xlab:** It is a label for the x-axis.

**ylab:** It is the label for the y-axis.

**pch:** It is the shape of points.

**col:** It is the foreground color of symbols as well as lines.

**las:** It is the axes label style.

**bty:** It is the type of box round the plot area.

**bg:** It is the background color of symbols (only 21 through 25).

**cex:** It is an amount of scaling plotting text and symbols.

**… **They are the arguments to be passed to methods.

- “
**p**” for points plot,

- “
**l**” for a line plot,

- “
**b**” for both plots,

- “
**c**” for the part of the line alone of “b”,

- “
**o**” for both**“overplotted”**,

- “
**h**” for ‘histogram’ like (or “**high-density**“) vertical lines.

- “
**s**” for stair steps,

- “
**S**” for other steps. See ‘Details’ below,

- “
**n**” for no plotting.

**Example 1: Simple plot() function implementation**

Let’s use the equation **y = x^3**. This means we will define two vectors, x and y, and y is the cube of x.

```
x <- c(1, 2, 3, 4, 5)
y <- c(1, 8, 27, 64, 125)
```

Let’s plot the y = x^3 values on the line plot. To create a line plot, pass the parameter type = “l” inside the plot function.

```
x <- c(1, 2, 3, 4, 5)
y <- c(1, 8, 27, 64, 125)
plot(x, y, type = "l")
```

**Output**

And we get the line chart of the **y = x^3** function.

If we don’t pass the **type = “l”** in the argument, it will return the points plot. By default, the plot() function returns a **point plot.**

**Example 2: Plot the cos() function in R**

To calculate the cosine value in R, use the cos() function. Next, we plot the sine function using the **pi** **constant** from the range **-pi** to **pi**.

```
x <- seq(-pi, pi, 0.1)
plot(x, cos(x))
```

**Output**

**Example 3: Adding titles and labeling axes**

To add a title to our plot, use the **main **parameter and pass the name of your choice.

To label the x and y-axis, use the **xlab** and **ylab** arguments.

```
x <- seq(-pi, pi, 0.1)
plot(x, cos(x), main = "Cos Function", ylab = "cos(x)")
```

**Output**

On the y-axis, you can see the label name cos(x).

**Example 4: Changing the symbols and colors of a plot in R**

We can see above that the plot is of circular points and is black in color. This is the default color.

Let’s change the symbol using the **pch **and** col **parameters for choosing the color.

```
x <- seq(-pi, pi, 0.1)
plot(x, cos(x), pch = c(4, 5, 6), col = c("red", "blue", "violet", "green"))
```

**Output**

You can use the pch (plotting character) argument to specify symbols when plotting points. For example, for symbols 21 through 25, you can specify border color using the col argument and fill color using bg argument.

**Example 5: Plot multiple graphs into a single image in R**

To combine multiple graphs into a single image, use the **par()** function.

Let’s combine two graphs. 1st is a line chart, and 2nd is a point chart with different symbols and colors.

```
par(mfrow = c(1, 2))
x <- seq(-pi, pi, 0.1)
plot(x, cos(x), type="l")
plot(x, cos(x), pch = c(4, 5, 6), col = c("red", "blue", "violet", "green"))
```

**Output**

You can also add more graphs using the par() function. For example, let’s add six graphs in one image in R.

```
par(mfrow = c(2, 3))
x <- seq(-pi, pi, 0.1)
plot(x, cos(x), type = "l")
plot(x, cos(x), pch = c(4, 5, 6), col = c("red", "blue", "violet", "green"))
plot(x, x ^ 3, col = "red", type = "l")
m <- 0.8
c <- 2
plot(x, m * x + c, col = "green", type = "o", lwd = 2, lty = 1)
plot(x, log(x), col = "violet", type = "s")
plot(x, exp(x), col = "red", type = "b")
```

**Output**

**Example 6: Overlaying Plots Using legend() function in R**

Sometimes, we need to overlay the plots to compare the results. To overlay the plot, use the **lines()** and **points()** methods to add lines and points to the existing plot.

```
x <- seq(-pi, pi, 0.1)
plot(x, cos(x), type = "l",
main = "Overlaying Charts",
ylab = "",
col = "red")
lines(x, sin(x), col = "blue")
legend("topleft", c("sin(x)", "cos(x)"), fill = c("blue", "red"))
```

**Output**

The legend() function in R is used to display the legend appropriately.

**How to add lines to a Plot in R**

To add the straight line to the existing plot, use the **abline()** function. The abline() is a built-in R method that takes four parameters, a, b, h, and v. The variables **a** and **b** represent the slope and intercept. The **h** represents the y points for horizontal lines, and the **v** represents the x points for vertical lines.

```
x <- seq(1, 10, 2)
y1 <- x ^ 2
y2 <- x ^ 3
plot(x, y1, type = "l", col = "red")
lines(x, y2, col = "green")
legend("bottomright", inset = 0.05, c("Squares", "Cubes"),
lty = 1, col = c("red", "green"),
title = "Graph type")
abline(a = 4, b = 5, col = "blue")
abline(h = c(4, 6, 8), col = "red", lty = 2)
abline(v = c(4, 6, 8), col = "green", lty = 2)
```

**Output**

**Conclusion**

In this example, we have seen what the plot() function is, how to use the plot(is) function to create a point and line graph with different shapes, colors, outboxes, with box, legend, with label values, and finally how to download the graph image.

That’s it for this tutorial.

Krunal Lathiya is a Software Engineer with over eight years of experience. He has developed a strong foundation in computer science principles and a passion for problem-solving. In addition, Krunal has excellent knowledge of Data Science and Machine Learning, and he is an expert in R Language.