Edited to add: I didn't check for updates before posting
... What @joels said, all of it! (I also endorse making year a factor on the fly, even though that's not what I did below)
I am usually the first to tell people to convert their date-like data into actual dates, but in this scenario I am actually going to advocate for making month and year factors. Your x-axis doesn't represent a single progression through time, but instead several years overlaid. If we expect the month positions to actually represent, say, the first day of each month in each year, they wouldn't even have consistent spacing since there are leap years in your dataset. In this scenario, it seems to me that months are functioning as category labels with an intrinsic order to them, the exact thing factors were made for.
Regardless of what you do with month, I think you definitely want to convertyear into a factor, as @felipeflores suggested.
Since year is currently numeric, ggplot() doesn't know that it's supposed to function as a set of category labels with visually distinguishable colors. Instead, it's treating it as numbers (that happen to range between 2,012 and 2,018), and applying a continuous color ramp.
Here are some code examples, working with the limited glimpse of the data provided, reformatted by hand
into something usable (I definitely concur about checking out the post about how to include data in your questions!).
To make the consequences of the two approaches (date vs factor) more obvious, I've tweaked the data a bit so that the 2017 and 2018 data cover the same range of months (as is the case in the full data set)
library(tidyverse)
neb_rail <- wrapr::build_frame(
"year", "month" , "vol_m3", "volume_m3d", "volume_bbl", "volume_bpd" |
2018L , "May" , 979274L , 31589L , 6162433L , 198788L |
2018L , "April" , 922323L , 30744L , 5804048L , 193468L |
2018L , "March" , 840522L , 27114L , 5289282L , 170622L |
2018L , "February" , 596565L , 21306L , 3754096L , 134075L |
2018L , "January" , 717726L , 23152L , 4516550L , 145695L |
2017L , "May" , 748489L , 24145L , 4710133L , 151940L |
2017L , "April" , 707046L , 23568L , 4449337L , 148311L |
2017L , "March" , 675768L , 21799L , 4252509L , 137178L |
2017L , "February" , 639449L , 21315L , 4023963L , 134132L |
2017L , "January" , 590833L , 19059L , 3718026L , 119936L )
# `month` and `year` are factors
neb_rail_fac <- neb_rail %>%
mutate(
year = factor(year),
month = factor(month, levels = month.name)
)
ggplot(data = neb_rail_fac) +
geom_line(mapping = aes(
x = month,
y = volume_bpd,
group = year,
color = year
),
size = 1) +
labs(y = "bbl/d", x = "Month", title = "Oil Exports by Rail")

# `year` is a factor, create a new date variable
neb_rail_date <- neb_rail %>%
mutate(
year_month = lubridate::parse_date_time(paste(year, month),orders = "ym"),
year = factor(year)
)
ggplot(data = neb_rail_date) +
geom_line(mapping = aes(
x = year_month,
y = volume_bpd,
group = year,
color = year
),
size = 1) +
labs(y = "bbl/d", x = "Month", title = "Oil Exports by Rail")

Created on 2018-07-31 by the reprex package (v0.2.0).