工具#
子模块#
graphistry.layout.utils.dummyVertex 模块#
- class graphistry.layout.utils.dummyVertex.DummyVertex(r=None)#
基础类:
LayoutVertex
DummyVertex用于跨越多个层的边,它被插入到每个内部层中。
- Attributes
视图 (viewclass): 由于 DummyVertex 充当了 Vertex 的角色,它必须有一个视图。
ctrl (list[_sugiyama_attr]): 关联的虚拟顶点列表。
- inner(direction)#
如果给定方向上的邻居是虚拟的,则为True。
- neighbors(direction)#
反映顶点方法并返回给定方向上的相邻顶点列表(可能是虚拟的)。 :param direction: +1 表示下一层(子节点),-1 表示上一层(父节点)
- Parameters:
方向 (整数)
graphistry.layout.utils.geometry 模块#
- graphistry.layout.utils.geometry.angle_between_vectors(p1, p2)#
- graphistry.layout.utils.geometry.lines_intersection(xy1, xy2, xy3, xy4)#
返回两条线的交点。
- graphistry.layout.utils.geometry.new_point_at_distance(pt, distance, angle)#
- graphistry.layout.utils.geometry.rectangle_point_intersection(rec, p)#
返回矩形(w,h)与从矩形对象中心到点‘p’的直线之间的交点。
- graphistry.layout.utils.geometry.set_round_corner(e, pts)#
- graphistry.layout.utils.geometry.setcurve(e, pts, tgs=None)#
返回通过点列表P的样条曲线。 样条曲线是一系列三次贝塞尔曲线(nurbs),这些曲线在它们的端点处具有匹配的切线。 这里考虑的方法取自“The NURBS book”(Les A. Piegl, Wayne Tiller, Springer, 1997),并实现了局部插值而非全局插值。
- Args:
e: pts: tgs:
返回:
- graphistry.layout.utils.geometry.size_median(recs)#
- graphistry.layout.utils.geometry.tangents(P, n)#
graphistry.layout.utils.layer 模块#
- class graphistry.layout.utils.layer.Layer(iterable=(), /)#
基础类:
list
层是Sugiyama布局在分层列表中组织顶点的地方。顶点的放置由Sugiyama类完成,但它高度依赖于每层中顶点的排序以减少交叉。这种排序取决于在上层或下层中找到的邻居。
- Attributes:
layout (SugiyamaLayout): 包含此层的Sugiyama布局实例的引用 upper (Layer): 对上层(层-1)的引用 lower (Layer): 对下层(层+1)的引用 crossings (int): 在此层中检测到的交叉次数
- Methods:
设置(布局):从提供的布局中设置初始属性值 nextlayer():返回当前布局方向参数中的下一个层。 prevlayer():返回当前布局方向参数中的上一个层。 order():计算层内顶点的最优排序。
- crossings = None#
- layout = None#
- lower = None#
- neighbors(v)#
邻居指的是上下相邻的节点。 请注意,v.neighbors() 提供了图中v的邻居,而 此方法提供了在上下层中与v相邻的Vertex和DummyVertex (取决于layout.dirv状态)。
- nextlayer()#
- order()#
- prevlayer()#
- setup(layout)#
- upper = None#
graphistry.layout.utils.layoutVertex 模块#
- class graphistry.layout.utils.layoutVertex.LayoutVertex(layer=None, is_dummy=0)#
基础类:
object
Sugiyama布局为顶点添加了新属性。 这些属性存储在一个内部的_sugimyama_vertex_attr对象中。
- Attributes:
层数 (int): 层号 虚拟 (0/1): 顶点是否为虚拟 位置 (int): 顶点在层中的索引 x (list(float)): 顶点计算出的水平坐标列表 重心 (float): 顶点的当前重心
- Parameters:
layer (int | None)
graphistry.layout.utils.poset 模块#
- class graphistry.layout.utils.poset.Poset(collection=[])#
基础类:
object
Poset 类实现了一个集合,但允许以确定性的方式对元素进行积分,并获取集合中的特定对象。 成员运算符默认比较对象的 __hash__,但 Poset 允许通过使用 contains__cmp__(obj) 来检查 __cmp__/__eq__ 成员资格。
- add(obj)#
- contains__cmp__(obj)#
- copy()#
- deepcopy()#
- difference(*args)#
- get(obj)#
- index(obj)#
- intersection(*args)#
- issubset(other)#
- issuperset(other)#
- remove(obj)#
- symmetric_difference(*args)#
- union(other)#
- update(other)#
graphistry.layout.utils.rectangle 模块#
- class graphistry.layout.utils.rectangle.Rectangle(w=1, h=1)#
基础类:
object
矩形区域。
graphistry.layout.utils.routing 模块#
- graphistry.layout.utils.routing.route_with_lines(e, pts)#
使用线条进行基本边缘路由。布局传递已经提供了边缘应通过的点列表。我们只需计算调整尾部和头部的位置。
- graphistry.layout.utils.routing.route_with_rounded_corners(e, pts)#
- graphistry.layout.utils.routing.route_with_splines(e, pts)#
增强的边缘路由,其中上述折线路由的“角落”用贝塞尔曲线圆滑处理。
模块内容#
graphistry.layout.graph.edge 模块#
- class graphistry.layout.graph.edge.Edge(x, y, w=1, data=None, connect=False)#
基础类:
EdgeBase
图的边。
- Attributes
数据(对象):一个可选的负载
w (int): 与边关联的可选权重(默认值为1),Dijkstra算法使用它来找到最小流路径。
feedback (bool): Tarjan算法是否反转了这条边以解除图中的循环。
- Parameters:
w (int)
数据 (对象)
- attach()#
将此边附加到顶点的边集合中。
- data: object#
- detach()#
从顶点的边集合中移除这条边。
- feedback: bool#
- w: int#
graphistry.layout.graph.edgeBase 模块#
graphistry.layout.graph.graph 模块#
- class graphistry.layout.graph.graph.Graph(vertices=None, edges=None, directed=True)#
基础类:
object
- N(v, f_io=0)#
- add_edge(e)#
将边e及其顶点添加到图中,可能会合并相关的graph_core组件
- add_edges(edges)#
- Parameters:
edges (列表)
- add_vertex(v)#
将顶点 v 作为新组件添加到图中
- connected()#
返回组件列表
- deg_avg()#
顶点的平均度数
- deg_max()#
顶点的最大度数
- deg_min()#
顶点的最小度数
- edges()#
- eps()#
图的epsilon值(范数/阶数),每个顶点的平均边数。
- get_vertex_from_data(data)#
- get_vertices_count()#
- norm()#
图的范数(边的数量)
- order()#
图的顺序(顶点数)
- path(x, y, f_io=0, hook=None)#
- remove_edge(e)#
移除边e,如果包含e的graph_core断开连接,可能会生成两个新的核心。
- remove_vertex(x)#
移除顶点 v 及其所有边。
- vertices()#
参见 graph_core
graphistry.layout.graph.graphBase 模块#
- class graphistry.layout.graph.graphBase.GraphBase(vertices=None, edges=None, directed=True)#
基础类:
object
一个由顶点/边对象组成的连通图。GraphBase 是图的一个组件,它包含一组连通的顶点和边。
- Attributes:
verticesPoset (Poset[Vertex]): 图中顶点的偏序集。 edgesPoset (Poset[Edge]): 图中边的偏序集。 loops (set[Edge]): 环边的集合(度数为0)。 directed (bool): 表示图是否被视为有向的。
- N(v, f_io=0)#
- add_edge(e)#
添加边e。至少其一个顶点必须属于图,另一个顶点将自动添加。
- add_single_vertex(v)#
允许GraphBase持有单个顶点。
- complement(G)#
- constant_function(value)#
- contract(e)#
- deg_avg()#
顶点的平均度数
- deg_max()#
顶点的最大度数
- deg_min()#
顶点的最小度数
- dft(start_vertex=None)#
- dijkstra(x, f_io=0, hook=None)#
通过使用堆作为优先队列的Dijkstra算法,计算x与所有其他顶点之间的最短加权边路径。
- edges(cond=None)#
生成一个边的迭代器,带有可选的过滤器
- eps()#
图的epsilon值(范数/阶数),每个顶点的平均边数。
- get_scs_with_feedback(roots=None)#
最小FAS算法(反馈弧集)创建一个DAG。通过使用Tarjan算法返回强连通组件(“scs”)的集合。这些是顶点的最大集合,使得从每个顶点到其他每个顶点都有路径。 该算法从提供的根顶点列表执行DFS。当然,一个循环是一个强连通组件,但一个强连通组件可以包含多个循环。 通过用“feedback”标志标记边来提供要移除/反转的反馈无环边集。 复杂度为O(V+E)。
- Parameters:
根
- Returns:
- leaves()#
返回叶子(没有外向边的顶点)的列表。
- matrix(cond=None)#
这个关联矩阵类似于邻接矩阵,但是是反对称的。返回图组件的关联矩阵
- Parameters:
cond – 与vertices()中的条件函数相同。
- Returns:
数组
- norm()#
边缘偏序集的大小(边缘数量)。
- order()#
图的顺序(顶点数)
- partition()#
- path(x, y, f_io=0, hook=None)#
通过广度优先下降找到顶点x和y之间的最短路径,如果提供了f_io方向,则受其约束。路径以顶点对象的列表形式返回。 如果提供了hook函数,则在将每个顶点添加到路径时调用它,并将顶点对象作为参数传递。
- remove_edge(e)#
移除边 e,断言生成的图仍然是连通的。
- remove_vertex(x)#
移除顶点x及其所有关联的边。
- roots()#
返回根节点(没有入边的顶点)的列表。
- spans(vertices)#
- union_update(G)#
- vertices(cond=None)#
生成一个遍历顶点的迭代器,带有可选的过滤器
graphistry.layout.graph.vertex 模块#
- class graphistry.layout.graph.vertex.Vertex(data=None)#
基础类:
VertexBase
Vertex类通过图相关特性增强了VertexBase。
- Attributes
component (GraphBase): 包含此顶点的连接顶点的组件。默认情况下,顶点不属于任何组件,但当它被添加到图中时,c指向该图中的连接组件。 data (object): 与顶点关联的对象。
- property index#
graphistry.layout.graph.vertexBase 模块#
- class graphistry.layout.graph.vertexBase.VertexBase#
基础类:
object
顶点的基类。
- Attributes
e (list[Edge]): 与此顶点关联的边的列表。
- degree()#
degree() : 顶点的度数(边的数量)。
- detach()#
从其所有边中移除此顶点并返回此边的列表。
- e_dir(dir)#
根据提供的方向参数(>0 表示向外),可以是 e_in、e_out 或所有边。
- e_from(x)#
返回从顶点 v 指向该顶点的边。
- e_in()#
e_in() : 指向该顶点的边的列表。
- e_out()#
e_out(): 从该顶点指向外部的边的列表。
- e_to(y)#
返回从该顶点指向顶点v的边。
- e_with(v)#
返回包含此顶点和顶点v的边
- neighbors(direction=0)#
返回此顶点的邻居。在所有方向(默认)或过滤的f_io方向(>0表示向外)的邻居顶点列表。
- Parameters:
direction –
0: 父级和子级
-1: 父级
+1: 子级
- Returns:
顶点列表