mypath <- "C://Users//np83zg//OneDrive - Aalborg Universitet//Skrivebord//kommunedata//data"
setwd(mypath)
library(data.table)
library(tmap)
library(sf)
## Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
mydata <- as.data.table(read.table("bef_tab4.txt"))
setkey(mydata,residence,lag_residence)
T <- length(table(mydata$year))
cities <- c(101,751,461,851,561)

mig_cities <- mydata[residence%in%cities & lag_residence%in%cities, ]
M <- matrix(mig_cities$n,nrow=length(cities),ncol=length(cities))
# columns is origin row is destination

diag(M) <- rep(0,5)
haircolors <- c("cph", "aarhus", "odense", "aalborg","esbjerg")
dimnames(M) <- list(have = haircolors,
                    prefer = haircolors)

library(chorddiag)
groupColors <- c("#000000", "#FFDD89", "#957244", "#F26223","yellow")
chorddiag(M, groupColors = groupColors, groupnamePadding = 50)

Also look at this https://www.data-to-viz.com/graph/chord.html#