Here is a suggestion how you could approach this. I am using the ggplot2 package from the tidyverse which is very useful and popular for visualizations in R. I am also using some other functions that are collected in the tidyverse package collection to reshape your data since it comes in quite a messy format (For example your first row is the actual header of the table). Note that I also added some fictitious teams to your data, so that there is a little bit more to lock at in the plot.
library(tidyverse)
structure(list("Premier League" = c("Arsenal", "B.Leno", "R.Holding",
"Gabriel", "K.Tierney", "H.Bellerin"),
"League 2" = c("Previous club(1)","Redshirts", "Bolton", "Pigeons", NA, "Watford"),
"League 3" = c("Previous club(2)","Green lanterns", "Bury", "Bolton", NA, "Lady bugs"),
"League 4" = c("Previous club(3)", "Pigeons",NA, "Bury", NA, NA),
"...5" = c("Previous club(4)", NA, NA, NA, NA,NA),
"...6" = c("Previous club(5)", NA, NA, NA, NA, NA),
"...7" = c("Previous club(6)",NA, NA, NA, NA, NA),
"...8" = c("Previous club(7)", NA, NA, NA,NA, NA),
"...9" = c("Previous club(8)", NA, NA, NA, NA, NA),
"...10" = c("Previous club(9)",NA, NA, NA, NA, NA)),
row.names = c(NA, -6L),
class = c("tbl_df","tbl", "data.frame"))->yourData
# clean up the data
yourDataClean<-yourData[-1,]
colnames(yourDataClean)<-c("Player",yourData[1,-1])
yourDataClean
#> # A tibble: 5 x 10
#> Player `Previous club(… `Previous club(… `Previous club(… `Previous club(…
#> <chr> <chr> <chr> <chr> <chr>
#> 1 B.Leno Redshirts Green lanterns Pigeons <NA>
#> 2 R.Hol… Bolton Bury <NA> <NA>
#> 3 Gabri… Pigeons Bolton Bury <NA>
#> 4 K.Tie… <NA> <NA> <NA> <NA>
#> 5 H.Bel… Watford Lady bugs <NA> <NA>
#> # … with 5 more variables: `Previous club(5)` <chr>, `Previous club(6)` <chr>,
#> # `Previous club(7)` <chr>, `Previous club(8)` <chr>, `Previous
#> # club(9)` <chr>
# Bring into long format
yourDataLong<-yourDataClean%>%pivot_longer(cols =! 1,names_to=c("PrevClubNr"), values_to="Club")
yourDataLong
#> # A tibble: 45 x 3
#> Player PrevClubNr Club
#> <chr> <chr> <chr>
#> 1 B.Leno Previous club(1) Redshirts
#> 2 B.Leno Previous club(2) Green lanterns
#> 3 B.Leno Previous club(3) Pigeons
#> 4 B.Leno Previous club(4) <NA>
#> 5 B.Leno Previous club(5) <NA>
#> 6 B.Leno Previous club(6) <NA>
#> 7 B.Leno Previous club(7) <NA>
#> 8 B.Leno Previous club(8) <NA>
#> 9 B.Leno Previous club(9) <NA>
#> 10 R.Holding Previous club(1) Bolton
#> # … with 35 more rows
# Simple dotplot
yourDataLong%>%na.omit()%>%
ggplot(aes(x=Club,y=Player))+
geom_point()

# alternative way of plotting
yourDataLong%>%na.omit()%>%
ggplot(aes(x=PrevClubNr,y=Player,label=Club))+
geom_label()+
theme(axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
axis.title = element_blank())

Created on 2021-01-10 by the reprex package (v0.3.0)
Explanation:
At first I remove the first row from the data and use it as column names instead. I also change Arsenal to Player since that seems to be a bit more meaningful to me.
Then I convert the datafeame from the wide into the long format (pivot_longer) which is the preferred format for many applications within the tidyverse.
At the end I create the plots. I use na.omit() before piping the data into the plot so that the plot looks bit cleaner.
You see that creating the plots is actually the smallest part of my code. When working with data, you often face the issue that it comes in messy formats (such as the one you have), and a large part of your time you actually spent on cleaning up and reshaping your data. There are many great resources online, that can help you getting into R, tidyverse and ggplot2, The book R for data science is a very good place to start, but there are also tons of other tutorials and videos available online.