iGraph python:如何将轴线添加到绘图中

时间:2019-05-10 19:05:06

标签: python igraph

我有一个具有基于坐标的顶点位置的图形。有没有一种方法可以将坐标轴添加到图中以查看顶点在哪里结束?我找到了一种使用R的方法(将frame = True添加到visual_style),但是在python中似乎不起作用。

在仔细阅读了源代码之后,我认为我可以将默认抽屉更改为DescartesCoordinateSystem,但未对此进行记录。我认为我应该做的是

visual_style["drawer_factory"] = DescartesCoordinateSystem

但是我得到了错误:

    ig.plot(self.g, png_pathname, **self.visual_style)
  File "<path_to_virtualenv>/local/lib/python2.7/site-packages/igraph/drawing/__init__.py", line 477, in plot
    result.save()
  File "<path_to_virtualenv>/local/lib/python2.7/site-packages/igraph/drawing/__init__.py", line 285, in save
    self.redraw()
  File "<path_to_virtualenv>/local/lib/python2.7/site-packages/igraph/drawing/__init__.py", line 269, in redraw
    plotter(ctx, bbox, palette, *args, **kwds)
  File "<path_to_virtualenv>/local/lib/python2.7/site-packages/igraph/__init__.py", line 3151, in __plot__
    drawer = drawer_factory(context, bbox)
TypeError: __init__() takes exactly 4 arguments (3 given)

是否可能是由于抽屉工厂缺少边界参数? 根据源代码,DescartesCoordinateSystem需要contex,bbox和bounds [https://igraph.org/python/doc/igraph.drawing.coord.DescartesCoordinateSystem-class.html]

class Graph(GraphBase):
def __plot__(self, context, bbox, palette, *args, **kwds):
        drawer_factory = kwds.get("drawer_factory", DefaultGraphDrawer)
        if "drawer_factory" in kwds:
            del kwds["drawer_factory"]
        drawer = drawer_factory(context, bbox)
        drawer.draw(self, palette, *args, **kwds)

0 个答案:

没有答案