示例所用源数据:
library(circlize)
#读入数据及结构调整
popflow <- read.csv("popout20200122.csv", header = T)
pf <- as.matrix(popflow)
pf <- pf[, -1]
pf <- matrix(as.numeric(pf), nrow = nrow(pf))
rownames(pf) <- popflow[, 1]
colnames(pf) <- popflow[, 1]
#选择湖北省数据
pfhb <- t(as.matrix(pf["湖北", ]))
rownames(pfhb) <- "湖北"
#和弦图
chordDiagram(
pfhb,
transparency = 0.4,
link.sort = TRUE,
link.decreasing = TRUE,
col = "lightblue",
link.border = "blue",
annotationTrack = "grid",
preAllocateTracks = 1,
annotationTrackHeight = c(0.1, 0.03)
)
circos.trackPlotRegion(
track.index = 1,
panel.fun = function(x, y) {
xlim = get.cell.meta.data("xlim")
ylim = get.cell.meta.data("ylim")
sector.name = get.cell.meta.data("sector.index")
circos.text(
mean(xlim),
ylim[1] + 0.1,
sector.name,
facing = "clockwise",
niceFacing = TRUE,
adj = c(0, 0.5),
family = "GB1"
)
},
bg.border = NA
)
结果: