As Andres said, with a more detailed explanation of your problem (and what you did and achieved before) it's easier to find help.
If your data is in a dataframe as illustrated in your example you need to convert this first to a long format, then you can also replace the names to something nicer. Here I assume your data is in "input":
library(tidyverse)
df = input %>%
pivot_longer(-date, names_to = "ID") %>%
mutate(ID = case_when(ID == "libor_1m" ~ "1 month",
ID == "libor_3m" ~ "3 months",
ID == "libor_6m" ~ "6 months")) %>%
mutate(value = as.numeric(value)) # this might not be needed for you
head(df)
# A tibble: 6 x 3
date ID value
<dttm> <chr> <dbl>
1 2010-01-04 00:00:00 1 month 0.233
2 2010-01-04 00:00:00 3 months 0.254
3 2010-01-04 00:00:00 6 months 0.434
4 2010-01-05 00:00:00 1 month 0.233
5 2010-01-05 00:00:00 3 months 0.252
6 2010-01-05 00:00:00 6 months 0.428
Then you can plot this, as said above ggplot offers high level of flexibility:
ggplot(df, aes(x=date, y = value, colour = ID)) +
geom_line(size = 1.25) +
theme_minimal(base_size = 14) + # minimalistic theme with bigger font
scale_x_datetime(date_labels = "%b\n%Y") + # desing of x axis
# define a harmonic colour range:
scale_colour_viridis_d("", option = "inferno", begin = 0.25, end = 0.75) +
# adding better labels:
labs(title = "LIBOR-rate (2010-2020) for different durations",
subtitle = "for longer durations the rate is higher",
x = "", # or "year" but it should be clear with the date given
y = "Libor rate (in percent)",
caption = "from: www.libor-rates.org") +
# center the title:
theme(
plot.title = element_text(hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5))