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")