In this article, we will see how to add Vertical and Horizontal lines to the plot using ggplot2 in R Programming Language.

**Adding Vertical Line To R Plot using geom_vline()**

For adding the Vertical line to the R plot, **geom_vline()** draws a vertical line at a specified position.

Syntax:geom_vline(xintercept)

Parameter:here xintercept is used control the X position of line.

Return:Vertical line on R plot.

**Example: **To add the vertical line on the plot, we simply add **geom_vline()** function to ggplot2() function and pass the **xintercept**, which basically has a location on X-axis, where we actually want to create a vertical line. Here we set **2011** to the xintercept.

## R

`# load ggplot2 package` `library` `(ggplot2)` `# Create a dataframe for Plot data` `data <- ` `data.frame` `(year = ` `c` `(2011, 2012, 2013, 2014, 2015),` ` ` `point = ` `c` `(10, 20, 30, 40, 50))` `# Plot the scatter plot with vertical line` `# at X=2011` `ggplot` `(data, ` `aes` `(year, point)) + ` ` ` `ggtitle` `(` `"Point Chart"` `)+` ` ` `geom_point` `(` `aes` `(size = 1.0), col = ` `"green"` `)+` ` ` `geom_vline` `(xintercept = 2011)` |

**Output:**

**Adding Horizontal Line To R Plot using geom_hline()**

And for adding Horizontal lines to the R plot, we will use **geom_hline()** function:

Syntax:geom_hline(yintercept)

Parameter:here yintercept is used control the y position of line.

Return:Horizontal line on R plot.

**Example: **To add the horizontal line on the plot, we simply add **geom_hline()** function to ggplot2() function and pass the yintercept, which basically has a location on** **the **Y axis**, where we actually want to create a vertical line. Here we set **20 **to the xintercept.

## R

`# load ggplot2 package` `library` `(ggplot2)` `# Create a dataframe for Plot data` `data <- ` `data.frame` `(year = ` `c` `(2011, 2012, 2013, 2014, 2015),` ` ` `point = ` `c` `(10, 20, 30, 40, 50))` `# Plot the scatter plot with horizontal` `# line at Y=20` `ggplot` `(data, ` `aes` `(year, point)) + ` ` ` `ggtitle` `(` `"Point Chart"` `)+` ` ` `geom_point` `(` `aes` `(size = 1.0), col = ` `"green"` `)+` ` ` `geom_hline` `(yintercept = 20)` |

**Output:**

**Adding both vertical and horizontal lines to R plot**

To add both lines, we add both **geom_vline()** and **geom_hline()** function to ggplot() function and set the values of xintercept and yintercept.

**Example: **Here we will draw the vertical line at** X=2012 **and the vertical line at **Y=20**.

## R

`# load ggplot2 package` `library` `(ggplot2)` `# Create a dataframe for Plot data` `data <- ` `data.frame` `(year = ` `c` `(2011, 2012, 2013, 2014, 2015),` ` ` `point = ` `c` `(10, 20, 30, 40, 50))` `# Plot the scatter plot with both lines` `# at X=2012 and Y=20` `ggplot` `(data, ` `aes` `(year, point)) + ` ` ` `ggtitle` `(` `"Point Chart"` `)+` ` ` `geom_point` `(` `aes` `(size = 1.0), col = ` `"green"` `)+` ` ` `geom_vline` `(xintercept = 2012)+` ` ` `geom_hline` `(yintercept = 20)` |

**Output:**

**Adding multiple vertical and horizontal lines to R plot using seq() function**

We will use **seq()** function to represent the **xintercept **and **yintercept **and all other settings will remain the same as example 3.

Syntax:seq(from, to, by)

Parameters:

from :it is used to represent starting length.to:it is used to represent ending length.by:it represents increment of the system.

Return:well-formed sequence.

**Example: **Here we’re drawing vertical lines **from 2011 to 2015** with a difference of **0.5** and horizontal lines **from 10 to 50 **with a difference of **5**.

## R

`# load ggplot2 package` `library` `(ggplot2)` `# Create a dataframe for Plot data` `data <- ` `data.frame` `(year = ` `c` `(2011, 2012, 2013, 2014, 2015),` ` ` `point = ` `c` `(10, 20, 30, 40, 50))` `# Plot the scatter plot with multiple` `# vertical and horizontal lines` `ggplot` `(data, ` `aes` `(year, point)) + ` ` ` `ggtitle` `(` `"Point Chart"` `)+` ` ` `geom_point` `(` `aes` `(size = 1.0), col = ` `"green"` `)+` ` ` `geom_vline` `(xintercept = ` `seq` `(from=2011, to=2015, by = 0.5))+` ` ` `geom_hline` `(yintercept = ` `seq` `(from=10, to=50, by = 5))` |

**Output:**