這確實是igraph中的一個bug,它發生的原因是igraph在那裏爲箭頭留下一些空間,即使箭頭不在那裏。我將在下一個igraph版本中修復它。
作爲一種解決方法,您可以做的是將每個邊緣兩次繪製在彼此之上。爲此,您需要定向圖形,然後使用edge.arrow.mode
選項來避免箭頭。這是有效的,因爲只有邊的一端被箭頭繪圖儀修改。以這種方式繪製圖表有點愚蠢,但目前我找不到更好的解決方法。正如我所說的,新版本(0.6.4之後的版本)不會有這個問題。
library(igraph)
# Zoom in on the critical region, although the gap always has the
# same size, unless you make the plotting window bigger
g <- graph(c(1,2), directed=FALSE)
par(mar=c(0,0,0,0))
plot(g, edge.width=2, vertex.size=20, edge.color='black', main='',
rescale=FALSE, xlim=c(0.9,1), ylim=c(0.9,1),
layout=rbind(c(0,0), c(1,1)), vertex.color="#ffffff11")
# This plot should have no gaps
g2 <- as.directed(g, mode="mutual")
par(mar=c(0,0,0,0))
plot(g2, edge.width=2, vertex.size=20, edge.color='black', main='',
rescale=FALSE, xlim=c(0.9,1), ylim=c(0.9,1),
layout=rbind(c(0,0), c(1,1)), vertex.color="#ffffff11",
edge.arrow.mode="-")
這個罰款對我的作品對我來說。我知道你所描述的事情往往會發生,如果你試圖在一個非平方的陰謀區域進行陰謀,但我不記得你是如何實際做到這一點的。相關的,你可以嘗試我的包''庫(「qgraph」); qgraph(邊緣)''在這個行爲不應該發生。 – 2012-03-27 11:32:08
我在Windows下看到問題。窗口大小調整後,差距會增大。在這種情況下,這是一個很小的差距,但我非常感謝你爲完美而努力。你可以使用'layout()'('igraph'函數)來返回頂點的座標,然後從頭開始繪製你自己的圖形。先繪製邊緣然後頂點頂點。 – digitalmaps 2012-03-28 00:45:05
可能是一個錯誤。順便說一句。如果調整圖的大小,那麼最好重新繪製它,因爲重新縮放可能會放大舍入誤差。最好在https://bugs.launchpad.net/igraph報告igraph錯誤。 – 2013-02-06 02:53:29