This is basically the same as @seasmith's answer, except with the addition of saving the palette to a variable to use later. I do this often for explicitly setting a NA color and then using the palette across multiple plots.
Other packages have similar functions to the viridis ones: for example, you can get ColorBrewer palettes from RColorBrewer::brewer.pal, CartoColor palettes from rcartocolor::carto_pal, or any of the ggthemes ones from functions with the same name as the palette.
library(tidyverse)
plasma_pal <- c("red", viridis::plasma(n = 6))
plasma_pal
#> [1] "red" "#0D0887FF" "#6A00A8FF" "#B12A90FF" "#E16462FF" "#FCA636FF"
#> [7] "#F0F921FF"
iris %>%
ggplot(aes(Sepal.Length, Sepal.Width, color = cut(Petal.Length, 0:7))) +
geom_point() +
scale_color_manual(values = plasma_pal)

Created on 2018-04-19 by the reprex package (v0.2.0).
Answer from camille on Stack Overflowr - Modify viridis palette in ggplot - Stack Overflow
`viridis` type for discrete scales ?
r - discretizing viridis ggplot color scale - Stack Overflow
Something about the popular viridis palette
This is basically the same as @seasmith's answer, except with the addition of saving the palette to a variable to use later. I do this often for explicitly setting a NA color and then using the palette across multiple plots.
Other packages have similar functions to the viridis ones: for example, you can get ColorBrewer palettes from RColorBrewer::brewer.pal, CartoColor palettes from rcartocolor::carto_pal, or any of the ggthemes ones from functions with the same name as the palette.
library(tidyverse)
plasma_pal <- c("red", viridis::plasma(n = 6))
plasma_pal
#> [1] "red" "#0D0887FF" "#6A00A8FF" "#B12A90FF" "#E16462FF" "#FCA636FF"
#> [7] "#F0F921FF"
iris %>%
ggplot(aes(Sepal.Length, Sepal.Width, color = cut(Petal.Length, 0:7))) +
geom_point() +
scale_color_manual(values = plasma_pal)

Created on 2018-04-19 by the reprex package (v0.2.0).
Requires a call to scale_color_manual()
iris %>%
ggplot(aes(Sepal.Length, Sepal.Width, color = cut(Petal.Length, 0:7))) +
geom_point() +
scale_color_manual(values = c("red", viridis::viridis(6)))

Viridis has a discrete = TRUE option.
iris$Sepal.Width <- ordered(iris$Sepal.Width)
ggplot(iris, aes(Sepal.Length, Petal.Length, color=Sepal.Width)) +
geom_point() +
viridis::scale_color_viridis(discrete = TRUE)
Last version of {ggplot2} (dev: 2.2.1.9000) now has a viridis scale included.
You can use scale_colour_viridis_d() for discrete values or scale_fill_viridis_c() for continuous values.
In your case :
iris$Sepal.Width <- ordered(iris$Sepal.Width)
ggplot(iris, aes(Sepal.Length, Petal.Length, color=Sepal.Width)) +
geom_point() +
scale_colour_viridis_d()