# Line Chart

## What is a Line Chart?

A line chart is the graphical representation of the functional relationship of two (with 2D representation) or three (with 3D representation) characteristics as a diagram in line form, whereby changes or developments (for example within a certain period of time) can be represented. In contrast to the scatterplot, there can only be one pair or trio of values at a time. If enough data points are collected during a measurement, these points are usually ordered on the x-coordinate and can be connected by drawing line segments between them. Line charts are usually used in identifying the trends in data.

**Info**

The `lines()`

function adds information to a graph. It can not produce a graph on its own.

Usually it follows a `plot(x, y)`

command that produces a graph.

By default, `plot( )`

plots the (x,y) points. Use the `type="n"`

option in the `plot( )`

command, to create the graph with axes, titles, etc., but without plotting the points.

`type=`

can take the following values:

type | description |
---|---|

p | points |

l | lines |

o | overplotted lines and points |

b | points joined by lines |

c | no visible points (empty) joined by lines |

s, S | line-like stair steps |

h | histogram-like vertical lines |

n | does not produce any points or lines |

## Example with mtcars:

By default the `plot()`

function produces a scatter plot with dots. To make line graphs, pass it to the vector of x and y values, and specify the `type = " "`

:

```
plot(x = pressure$temperature, y = pressure$pressure) # 0.
plot(x = pressure$temperature, y = pressure$pressure, type = "p") # 1.
plot(x = pressure$temperature, y = pressure$pressure, type = "l") # 2.
plot(x = pressure$temperature, y = pressure$pressure, type = "o") # 3.
plot(x = pressure$temperature, y = pressure$pressure, type = "b") # 4.
plot(x = pressure$temperature, y = pressure$pressure, type = "c") # 5.
plot(x = pressure$temperature, y = pressure$pressure, type = "s") # 6.
plot(x = pressure$temperature, y = pressure$pressure, type = "h") # 7.
plot(x = pressure$temperature, y = pressure$pressure, type = "n") # 8.
```

To include **multiple lines** or to plot the points, first call plot() for the first line, then add additional lines and points with lines() and points() respectively:

```
# base graphic
plot(x = pressure$temperature, y = pressure$pressure,
type = "l", col = "steelblue")
# add points
points(x = pressure$temperature, y = pressure$pressure, col = "steelblue")
# add second line in red color
lines(x = pressure$temperature, y = pressure$pressure/2, col = "darkgreen")
# add points to second line
points(x = pressure$temperature, y = pressure$pressure/2, col = "darkgreen")
```

## Example with orange:

To demonstrate the creation of a more complex line chart, let’s plot the growth of 5 orange trees over time. Each tree will have its own distinctive line. The data come from the dataset Orange.

```
# convert factor to numeric for convenience
Orange$Tree <- as.numeric(Orange$Tree)
ntrees <- max(Orange$Tree)
```

```
# get the range for the x and y axis
xrange <- range(Orange$age)
yrange <- range(Orange$circumference)
```

```
# set up the plot
plot(xrange, yrange, type="n", xlab="Age (days)",
ylab="Circumference (mm)" )
colors <- rainbow(ntrees)
linetype <- c(1:ntrees)
plotchar <- seq(18,18+ntrees,1)
```

```
# add lines via for-loop
for (i in 1:ntrees)
{
tree <- subset(Orange, Tree==i)
lines(tree$age, tree$circumference, type="b", lwd=1.5,
lty=linetype[i], col=colors[i], pch=plotchar[i])
}
```

```
# add a title and subtitle
title("Tree Growth")
# add a legend
legend(xrange[1], yrange[2], 1:ntrees, cex=0.8, col=colors,
pch=plotchar, lty=linetype, title="Tree")
```