防止节点与 python iGraph 中的图像边缘重叠

Prevent nodes from overlapping the edge of the image in python iGraph

我正在使用 python 的 iGraph 来绘制一些图形,但我似乎无法阻止节点触及图像的边缘,尤其是在节点很少的情况下。在具有数千个节点的情况下,情况恰恰相反,它们过于集中在中心。有没有办法影响布局的行为来控制 hte 节点的密度,或者至少阻止它们被切断? 这是到目前为止的代码:

    visual_style = {}
    visual_style["vertex_size"] = sz
    visual_style["layout"] = gg.layout_fruchterman_reingold()
    visual_style["bbox"] = (4000, 4000)
    visual_style["margin"] = 20
    visual_style["edge_arrow_size"] = 0
    visual_style["edge_color"] = 'White'
    visual_style['edge_width'] = ew
    visual_style["edge_curved"] = .2
    # print(visual_style)
    plot(gg,"./images/"+str(i)+".png", autocurve=True,rescale=False, background='Black',asp=0, **visual_style)

和截断节点的样本

是的,有一种方法可以在视觉样式字典中定义边距。您可以使用以下命令:visual_style['margin'] 并将边距定义为字典中的字典。

visual_style['unit'] = 'cm'
visual_style['margin'] = {'top': 1, 'bottom': 1, 'left': 3, 'right': 3}

上面的代码将 return 以厘米为单位的边距。