我在控制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.0
和res=2.0
,箭头和顶点与图像大小相比变得更小。
这怎么可能?
这只是一个粗略的猜测,但笔划宽度可以解释差异吗?默认的笔划宽度为1个单位,并且似乎不会缩放笔划宽度。尝试在对plot()
的调用中设置vertex_frame_width=res
。