Learn to add legend to a plot using the legend()
function. Specifically
ncol
and horiz
argumentstitle.
set of argumentsusers <- readr::read_csv('https://raw.githubusercontent.com/rsquaredacademy/datasets/master/users_device.csv',
col_types = list(col_date(format = "%m/%d/%y"), col_integer(),
col_integer(), col_integer()))
## # A tibble: 33 x 4
## Date Desktop Mobile Tablet
## <date> <int> <int> <int>
## 1 2017-10-11 2345 876 92
## 2 2017-10-12 2173 784 111
## 3 2017-10-13 1826 772 97
## 4 2017-10-14 1178 1032 155
## 5 2017-10-15 1239 747 105
## 6 2017-10-16 2158 801 85
## 7 2017-10-17 2682 1307 127
## 8 2017-10-18 2252 1110 112
## 9 2017-10-19 2210 891 93
## 10 2017-10-20 2040 824 94
## # ... with 23 more rows
Below is the description of the data set:
plot(users$Date, users$Desktop, type = "l", col = "blue", main = 'Daily Visitors',
ylim = c(0, 3000), xlab = 'Date', ylab = 'Visitors')
lines(users$Date, users$Mobile, type = "l", col = "red")
lines(users$Date, users$Tablet, type = "l", col = "green")
{plot(users$Date, users$Desktop, type = "l", col = "blue", main = 'Daily Visitors',
ylim = c(0, 4000), xlab = 'Date', ylab = 'Visitors')
lines(users$Date, users$Mobile, type = "l", col = "red")
lines(users$Date, users$Tablet, type = "l", col = "green")
legend(x = as.Date('2017-10-13'), y = 3900, legend = c('Desktop', 'Mobile', 'Tablet'))}
{plot(users$Date, users$Desktop, type = "l", col = "blue", main = 'Daily Visitors',
ylim = c(0, 4000), xlab = 'Date', ylab = 'Visitors')
lines(users$Date, users$Mobile, type = "l", col = "red")
lines(users$Date, users$Tablet, type = "l", col = "green")
legend(x = as.Date('2017-10-13'), y = 3900, legend = c('Desktop', 'Mobile', 'Tablet'), lty = 1,
col = c('blue', 'red', 'green'))}
{plot(users$Date, users$Desktop, type = "l", col = "blue", main = 'Daily Visitors',
ylim = c(0, 4000), xlab = 'Date', ylab = 'Visitors')
points(users$Date, users$Desktop, pch = 2, col = 'blue')
lines(users$Date, users$Mobile, type = "l", col = "red")
points(users$Date, users$Mobile, pch = 2, col = 'red')
lines(users$Date, users$Tablet, type = "l", col = "green")
points(users$Date, users$Tablet, pch = 2, col = 'green')
legend(x = as.Date('2017-10-13'), y = 3900, legend = c('Desktop', 'Mobile', 'Tablet'), lty = 1,
col = c('blue', 'red', 'green'), pch = 2)}
{plot(users$Date, users$Desktop, type = "l", col = "blue", main = 'Daily Visitors',
ylim = c(0, 4000), xlab = 'Date', ylab = 'Visitors')
lines(users$Date, users$Mobile, type = "l", col = "red")
lines(users$Date, users$Tablet, type = "l", col = "green")
legend(x = as.Date('2017-10-13'), y = 3900, legend = c('Desktop', 'Mobile', 'Tablet'), lty = 1,
col = c('blue', 'red', 'green'), horiz = TRUE)}
{plot(users$Date, users$Desktop, type = "l", col = "blue", main = 'Daily Visitors',
ylim = c(0, 4000), xlab = 'Date', ylab = 'Visitors')
lines(users$Date, users$Mobile, type = "l", col = "red")
lines(users$Date, users$Tablet, type = "l", col = "green")
legend(x = as.Date('2017-10-13'), y = 3900, legend = c('Desktop', 'Mobile', 'Tablet'), lty = 1,
col = c('blue', 'red', 'green'), ncol = 2)}
{plot(users$Date, users$Desktop, type = "l", col = "blue", main = 'Daily Visitors',
ylim = c(0, 4000), xlab = 'Date', ylab = 'Visitors')
lines(users$Date, users$Mobile, type = "l", col = "red")
lines(users$Date, users$Tablet, type = "l", col = "green")
legend(x = as.Date('2017-10-13'), y = 3900, legend = c('Desktop', 'Mobile', 'Tablet'), lty = 1,
col = c('blue', 'red', 'green'), title = 'Devices', horiz = TRUE)}
{plot(users$Date, users$Desktop, type = "l", col = "blue", main = 'Daily Visitors',
ylim = c(0, 4000), xlab = 'Date', ylab = 'Visitors')
lines(users$Date, users$Mobile, type = "l", col = "red")
lines(users$Date, users$Tablet, type = "l", col = "green")
legend(x = as.Date('2017-10-13'), y = 3900, legend = c('Desktop', 'Mobile', 'Tablet'), lty = 1,
col = c('blue', 'red', 'green'), title = 'Devices', title.col = 'red', horiz = TRUE)}
{plot(users$Date, users$Desktop, type = "l", col = "blue", main = 'Daily Visitors',
ylim = c(0, 4000), xlab = 'Date', ylab = 'Visitors')
lines(users$Date, users$Mobile, type = "l", col = "red")
lines(users$Date, users$Tablet, type = "l", col = "green")
legend(x = as.Date('2017-10-13'), y = 3900, legend = c('Desktop', 'Mobile', 'Tablet'), lty = 1,
col = c('blue', 'red', 'green'), title = 'Devices', title.adj = 0.1, horiz = TRUE)}
option | argument | values |
---|---|---|
Box Type | bty | o, n |
Background Color | bg | blue, #0000ff |
Border Line Type | box.lty | 1:5 |
Border Line Width | box.lwd | 0.5, 1, 1.5 |
Border Line Color | box.col | blue, #0000ff |
Horizontal Justification | xjust | 0:1 |
Vertical Justification | yjust | 0:1 |
Text Color | text.col | blue, #0000ff |
Text Font | text.font | 1:5 |
{plot(users$Date, users$Desktop, type = "l", col = "blue", main = 'Daily Visitors',
ylim = c(0, 4000), xlab = 'Date', ylab = 'Visitors')
lines(users$Date, users$Mobile, type = "l", col = "red")
lines(users$Date, users$Tablet, type = "l", col = "green")
legend(x = as.Date('2017-10-13'), y = 3900, legend = c('Desktop', 'Mobile', 'Tablet'), lty = 1,
col = c('blue', 'red', 'green'), title = 'Devices', bg = '#ffff66', horiz = TRUE)}
The following arguments can be used to modify the border of the legend box:
box.lty
: line typebox.lwd
: line widthbox.col
: color{plot(users$Date, users$Desktop, type = "l", col = "blue", main = 'Daily Visitors',
ylim = c(0, 4000), xlab = 'Date', ylab = 'Visitors')
lines(users$Date, users$Mobile, type = "l", col = "red")
lines(users$Date, users$Tablet, type = "l", col = "green")
legend(x = as.Date('2017-10-13'), y = 3900, legend = c('Desktop', 'Mobile', 'Tablet'), lty = 1,
col = c('blue', 'red', 'green'), title = 'Devices', horiz = TRUE,
box.lty = 3, box.lwd = 1.5, box.col = 'green')}
The xjust
and yjust
arguments can be used to position the legend relative to the X and Y axis respectively. Listed below is the value and the respective justification:
0
: left justified0.5
: centered1
: right justified{plot(users$Date, users$Desktop, type = "l", col = "blue", main = 'Daily Visitors',
ylim = c(0, 4000), xlab = 'Date', ylab = 'Visitors')
lines(users$Date, users$Mobile, type = "l", col = "red")
lines(users$Date, users$Tablet, type = "l", col = "green")
legend(x = as.Date('2017-10-13'), y = 3900, legend = c('Desktop', 'Mobile', 'Tablet'), lty = 1,
col = c('blue', 'red', 'green'), title = 'Devices',
text.col = 'green', text.font = 3, horiz = TRUE)}