利用R语言igraph对中国top100的大学地域进行分类

利用R语言igraph对中国top100的大学地域进行分类

https://github.com/425776024/R_chinaTop100college_analyze

曾经高考、考研过来人觉得中国大学分布虽然网上随便一搜一大堆,但不够直观,不同省份的大学也只是一些刻板的数据;
突然觉得做一个如下的统计图很有意思,也好看看到底哪些省是大学大省,于是用R语言和网上随便搜的一个学术排名数据做了个这么个关系图。如果觉得不清晰可以自己运行实现。

data <- read.csv("test_data.csv")
hd<-data[1:100,]
hd_p <- c(hd$排名)
hd_sc <- hd$学校名称
hd_score<-c(hd$`总得分`)
hd_address <- as.character(hd$省份)
names.school <- paste(hd_p, hd_sc, sep = ":")
names.school <- paste(names.school, hd_score, sep = "")
#print(names.school)


#install.packages("igraph")
library(igraph)

school <- names.school
address <- hd_address

relations <- data.frame(from = school,
to = address)

g <- graph_from_data_frame(relations, directed = TRUE)
png("top100collage.png", height = 4000, width = 4000, res = 90)
nodesize <- ((110 - hd_p) / 100) * 12
ftsize <- ((110 - hd_p) / 100) * 2.5
nodesize[nodesize < 5] <- 5
ftsize[ftsize < 0.8] <- 0.8


V(g)$size <- nodesize
V(g)$label.cex <- ftsize
E(g)$width <- 1
v <- c(1:24)
ppp <- unique(address)
for (i in v) {
    Hex <- rgb(red = as.integer(runif(1, 10, 255)),
               green = as.integer(runif(1, 10, 255)),
               blue = as.integer(runif(1, 10, 255)), max = 255)
    V(g)[1:101][address == ppp[i]]$label.color = "#000000"
    V(g)[1:101][address == ppp[i]]$color = Hex
    E(g)[address == ppp[i]]$color = Hex
}
plot(g, col.main = "red", cex.main = 10, )
title(main = "中国top100大学学术研究排名及分布情况", col.main = "red", cex.main = 6)
dev.off()

image

posted @ 2018-11-27 15:48  jj千寻  阅读(231)  评论(0编辑  收藏  举报