Как автоматически настроить размер узла и метки в ggnet2 (R) - PullRequest
1 голос
/ 28 апреля 2020

У меня есть набор файлов узлов / ребер для генерации сети с использованием ggnet2. Я сталкиваюсь с двумя проблемами:

  1. Некоторые могут иметь только 5-10 узлов, в то время как другие могут иметь 1000-10000 узлов, что делает сюжет слишком насыщенным. Поэтому мне любопытно, есть ли возможность автоматически настроить размер узла и метки.

  2. Хотя некоторые строки меток длинные (ie .e> 20 символов), часть ярлык будет вне изображения. Есть ли возможность избежать этого?

Код ниже

v = read.csv(vfile, sep="\t", na.string="nnn")
e = read.csv(efile, sep="\t", na.string="nnn")

# build the network
net = network(e, directed = TRUE, mode="hall")

# group affiliation
x = data.frame(Entity = network.vertex.names(net))
x = merge(x, v, by.x = 'Entity', by.y='ID', sort = FALSE)
net %v% "Group" = as.character(x$Group)

# color palette
y = RColorBrewer::brewer.pal(9, "Set2")[ c(1:length(levels(x$Group))) ]
names(y) = levels(x$Group)

# network plot
png(graphFile,width = 8, height = 6, units = 'in', res = 300)
ggnet2(
  net, color = "Group", palette = y,  
  node.size = 12,
  edge.size = 1, edge.alpha = 0.5,
  label = TRUE, label.size = 3, label.alpha = 0.8, 
  legend.size = 12, legend.position = "right",
  arrow.size=5, arrow.gap=0.01)
dev.off()
...