修改 我试图找出我的代码有什么问题,我开始绘制简单的图形,以查看箭头在较小的图形上的外观。我厌倦了以下命令:
g2 <- graph( edges=c(1,2, 2,3, 3, 1), n=10 )
plot(g2)
这是我的图表:。因此,我认为问题不在于我的代码,而是使用igraph或R.我重新安装了两个,igraph和R但它没有解决问题。是否可能存在导致此问题的包装冲突?这是我安装的一些软件包:
[1] "base" "boot" "class" "cluster"
[5] "codetools" "colorspace" "compiler" "datasets"
[9] "dichromat" "digest" "doParallel" "foreach"
[13] "foreign" "graphics" "grDevices" "grid"
[17] "gridBase" "gtable" "igraph" "irlba"
[21] "iterators" "KernSmooth" "labeling" "lattice"
[25] "lazyeval" "magrittr" "MASS" "Matrix"
[29] "methods" "mgcv" "munsell" "nlme"
[33] "NMF" "nnet" "parallel" "pkgmaker"
[37] "plyr" "RColorBrewer" "Rcpp" "registry"
[41] "reshape2" "rngtools" "rpart" "scales"
[45] "spatial" "splines" "stats" "stats4"
[49] "stringi" "stringr" "survival" "tcltk"
[53] "tibble" "tools" "utils" "xtable"
我正在尝试生成一个网络图,由于某种原因,我的箭头看起来像小矩形,而不是通常的三角形箭头。
以下是我正在使用的代码:
toy.edges <- na.omit(read.csv("Data/Edge_list-toy.csv", header = TRUE, colClasses = "numeric", na.strings = c("NA", "", "#N/A")))
toy.nodes <- na.omit(read.csv("Data/NodesDataF-toy.csv", header = TRUE, na.strings = c("NA", "", "#N/A")))
toy.graph <- graph_from_data_frame(toy.edges, directed = TRUE, vertices = toy.nodes)
V(toy.graph)$color <- "magenta"
V(toy.graph)$shape <- "sphere"
V(toy.graph)$size <- 3*15^(ifelse(is.na(V(toy.graph)$node.size), 0.001,
V(toy.graph)$node.size))
plot(toy.graph, layout = layout.fruchterman.reingold(toy.graph),
vertex.label=NA, edge.width=E(toy.graph)$weight,
edge.arrow.size=0.005, edge.arrow.width=0.0000001)
这是一个示例情节:
当我为edge.arrow.size
取稍大的值时看起来更糟糕
和edge.arrow.width
。
我的代码出了什么问题?它可以与R版本有关吗?我以前做过很多情节,使用非常相似的命令,我从来没有遇到过问题。
以下是包含nodes info和edge list的文件。
答案 0 :(得分:1)
所以看起来问题在于R如何在我的计算机上显示图形。何时,我不是直接在控制台中绘制图形,而是将其保存到文件中,一切看起来都很好。这是我正在使用的代码,以防其他人遇到类似的问题:
png("my-plot.png", width=1200, height=1200)
par(mar=c(0,0,0,0))
plot(mat_gr, layout = layout.auto(mat_gr), vertex.label=NA,
edge.width=E(mat_gr)$weight)
dev.off()
我意识到它并没有解决显示巨大箭头的问题,但至少它可以生成保存可用的图。
答案 1 :(得分:1)
使用plot.igraph()
而不是简单地使用plot()
可能会有所帮助。
答案 2 :(得分:0)
参数 edge.arrow.size 可能有助于减小箭头尺寸。通过此link,可在绘图功能文档中找到更多信息。基本上,我们可以通过在参数前面添加顶点/边来使用所有列出的参数。
plot(g2, edge.arrow.size = 0.1)