基于中心度量绘制Igraph对象

时间:2017-01-06 15:34:04

标签: r igraph

我有一个使用下面的代码和中心性度量计算的图表,我如何使用计算的中心性度量来使用图表。图像描述了我的图形看起来如何,我希望具有最大中心性的节点应该更大,而不是其他节点

r_stats_text_corpus <- Corpus(VectorSource(data1))
r_stats_text_corpus <- tm_map(r_stats_text_corpus, content_transformer(tolower))
r_stats_text_corpus <- tm_map(r_stats_text_corpus, stripWhitespace)
r_stats_text_corpus <- tm_map(r_stats_text_corpus, removePunctuation)
tdm <- TermDocumentMatrix(r_stats_text_corpus,control = list(wordLenghts = c(1,Inf)))
tdm2 <- removeSparseTerms(tdm, sparse = 0.994)
m2 <- as.matrix(tdm2)
m2[m2>=1] <- 1
m2 <- m2 %*% t(m2)  ##Adjaceny Matrix
g <- graph.adjacency(m2, weighted=T, mode = "undirected")
g <- simplify(g)
plot(g)

# Centrality Measures computed 
betweenessCentrality <- betweenness(g)
ec <- eigen_centrality(g)
ec$vector
degreedistribution <- degree.distribution(g)

the documentation

以下是正在使用的文本数据片段

data1 <- c("RT @mashable: The first Miss America was a 16-year-old high schooler: on.mash.to/24M91OG #IWD2016 pic.twitter.com/eFgPOYi3WI",
"RT @Harry_Styles: Happy International Women's Day. I hope it was a wonderful one. H",
"RT @CathyBessant: #Womenintech enjoy their careers, yet gender parity persists. We must change the status quo. #IWD2016 pic.twitter.com/RJA473AG6k",
"RT @ArianaGrande: happy international women's day! ..... I mean week....... I mean month...... I mean year....... I mean life.....  ??",
"RT @Harry_Styles: Happy International Women's Day. I hope it was a wonderful one. H",
"RT @Harry_Styles: Happy International Women's Day. I hope it was a wonderful one. H",
"RT @NobelPrize: Women who changed the world: facebook.com/nobelprize/vid… #InternationalWomensDay #IWD2016 pic.twitter.com/PalpfyPmux",
"Happy International Women's Day. Must every woman know her strength, beauty, and light. We are warriors. ?????????????? pic.twitter.com/JR1iuwAlkD",
"RT @Harry_Styles: Happy International Women's Day. I hope it was a wonderful one. H")

1 个答案:

答案 0 :(得分:2)

你可以做到

data1 <- c("RT @mashable: The first Miss America was a 16-year-old high schooler: on.mash.to/24M91OG #IWD2016 pic.twitter.com/eFgPOYi3WI", "RT @Harry_Styles: Happy International Women's Day. I hope it was a wonderful one. H", "RT @CathyBessant: #Womenintech enjoy their careers, yet gender parity persists. We must change the status quo. #IWD2016 pic.twitter.com/RJA473AG6k", "RT @ArianaGrande: happy international women's day! ..... I mean week....... I mean month...... I mean year....... I mean life..... ??", "RT @Harry_Styles: Happy International Women's Day. I hope it was a wonderful one. H", "RT @Harry_Styles: Happy International Women's Day. I hope it was a wonderful one. H", "RT @NobelPrize: Women who changed the world: facebook.com/nobelprize/vid… #InternationalWomensDay #IWD2016 pic.twitter.com/PalpfyPmux", "Happy International Women's Day. Must every woman know her strength, beauty, and light. We are warriors. ?????????????? pic.twitter.com/JR1iuwAlkD", "RT @Harry_Styles: Happy International Women's Day. I hope it was a wonderful one. H")
library(tm)
library(igraph)
set.seed(1)

r_stats_text_corpus <- Corpus(VectorSource(data1))
r_stats_text_corpus <- tm_map(r_stats_text_corpus, content_transformer(tolower))
r_stats_text_corpus <- tm_map(r_stats_text_corpus, stripWhitespace)
r_stats_text_corpus <- tm_map(r_stats_text_corpus, removePunctuation)
tdm <- TermDocumentMatrix(r_stats_text_corpus,control = list(wordLenghts = c(1,Inf)))
tdm2 <- removeSparseTerms(tdm, sparse = 0.994)
m2 <- as.matrix(tdm2)
m2[m2>=1] <- 1
m2 <- m2 %*% t(m2)  
g <- graph.adjacency(m2, weighted=T, mode = "undirected")
g <- simplify(g)
bc <- betweenness(g)
ec <- eigen_centrality(g)

coords <- layout.auto(g)
par(mfrow = c(1,2))
plot(
  g, 
  layout = coords, 
  vertex.size = log(bc+1L)+2L, 
  vertex.label.cex = plotrix::rescale(bc, c(.7, 2))
)
plot(
  g, 
  layout = coords, 
  vertex.size = ec$vector*10L, 
  vertex.label.cex = plotrix::rescale(ec$vector, c(.7, 2))
)

enter image description here