以igraph表示的图像缩放有什么问题



我在控制igraph绘制的网络图中对象的大小时遇到了问题。plot命令的文档中写道:

  • bbox::绘图的边界框。这必须是一个包含绘图所需宽度和高度的元组。默认绘图为600像素宽和600像素高
  • arrow_size:如果图形是定向的,则边缘上箭头的大小(长度),相对于15个像素
  • vertex_size:顶点的大小(以像素为单位)

所以据我所知,所有这些论点都代表像素的数量。因此,将它们全部乘以2的因子,我希望图像完全按此因子缩放。

考虑以下python中的最小示例:

from igraph import Graph, plot
def visualize(res=1.0):
    g=Graph([(0,1), (1,0)], directed=True)
    layout = g.layout_fruchterman_reingold()
    plot(g, target='plot.png', 
         layout=layout,
         bbox=(120*res,120*res),  
         vertex_size=5*res, 
         arrow_size=10*res)

这绘制了一个平凡的图,
然而,对于res=1.0res=2.0,箭头和顶点与图像大小相比变得更小。

这怎么可能?

这只是一个粗略的猜测,但笔划宽度可以解释差异吗?默认的笔划宽度为1个单位,并且似乎不会缩放笔划宽度。尝试在对plot()的调用中设置vertex_frame_width=res

最新更新