class Layout
表示图的布局。
布局实际上是 n 维空间中坐标的列表。这个类是通用的,因为它可以在任何 n 维空间中存储坐标。
布局对象不直接与图关联。这是故意的:有时我处理几乎相同的图的副本,唯一的区别是它们分配了不同的颜色给顶点。对我来说,对所有这些使用相同的布局特别方便,尤其是在我为论文制作图形时。然而,igraph当然会拒绝绘制具有的布局坐标少于图的节点计数的图。
当使用项目索引运算符([...])访问布局时,它们的行为与列表完全相同。它们甚至可以被迭代。索引运算符返回的项目只是坐标的副本,但是可以通过直接分配给索引来修改存储的坐标。
>>> layout = Layout([(0, 1), (0, 2)]) >>> coords = layout[1] >>> print(coords) [0, 2] >>> coords = (0, 3) >>> print(layout[1]) [0, 2] >>> layout[1] = coords >>> print(layout[1]) [0, 3]
方法 | __copy__ |
未归档 |
方法 | __delitem__ |
未归档 |
方法 | __getitem__ |
未归档 |
方法 | __init__ |
构造函数。 |
方法 | __len__ |
未归档 |
方法 | __repr__ |
未归档 |
方法 | __setitem__ |
未归档 |
方法 | append |
将新点附加到布局 |
方法 | boundaries |
返回布局的边界。 |
方法 | bounding |
返回布局的边界框。 |
方法 | center |
将布局居中于给定点周围。 |
方法 | centroid |
返回布局的质心。 |
方法 | copy |
创建布局的精确副本。 |
方法 | fit |
将布局拟合到给定的边界框中。 |
方法 | mirror |
沿给定的维度镜像布局 |
方法 | rotate |
在由给定的两个维度定义的平面上,将布局旋转给定的度数。 |
方法 | scale |
缩放布局。 |
方法 | to |
将平面布局转换为径向布局 |
方法 | transform |
对布局执行任意转换 |
方法 | translate |
平移布局。 |
属性 | coords |
坐标作为列表的列表 |
属性 | dim |
返回维度数 |
实例变量 | _coords |
未归档 |
实例变量 | _dim |
未归档 |
构造函数。
参数 | |
coords | 要存储在布局中的坐标。 |
dim | 维度数。如果None,则从坐标列表的第一个项目的长度自动确定维度数。如果坐标列表中没有条目,则默认值为 2。通常,如果坐标列表的长度为零,则应给出此值,否则应保持原样。 |
返回布局的边界。
边界是所有维度上的最小和最大坐标。
参数 | |
border | 这个值从最小边界中减去,并添加到最大边界,然后返回框的坐标。默认为零。 |
返回值 | |
所有维度上的最小和最大坐标,在一个包含两个列表的元组中,一个用于最小坐标,另一个用于最大坐标。 | |
引发 | |
ValueError | 如果布局不包含任何布局项 |
返回布局的边界框。
布局的边界框是包围布局中所有点的最小框。
参数 | |
border | 这个值从最小边界中减去,并添加到最大边界,然后返回框的坐标。默认为零。 |
返回值 | |
框的左下角和右上角的坐标。“左下角”表示最小坐标,“右上角”表示最大坐标。这些坐标封装在 BoundingBox 对象中。 |
将布局居中于给定点周围。
点本身可以作为多个未命名参数、一个简单的未命名列表或作为关键字参数提供。此操作将布局的质心移动到给定的点。如果没有提供点,则默认为坐标系的原点。
参数 | |
*args | 未归档 |
**kwds | 未归档 |
p | 布局的质心在操作后将位于的点。 |
将布局拟合到给定的边界框中。
布局将被就地修改。
参数 | |
bbox | 用于拟合布局的边界框。如果布局的维度是 d,则它可以是 d 元组(定义框的大小)、2d 元组(定义框的左上角和右下角的坐标)或 BoundingBox 对象(仅适用于 2D 布局)。 |
keep | 是否保持当前布局的纵横比。如果False,则将重新缩放布局以完全适应边界框。如果True,则将保留布局的原始纵横比,并将其居中于边界框内。 |
在由给定的两个维度定义的平面上,将布局旋转给定的度数。
参数 | |
angle | 旋转角度,以度为单位指定。 |
dim1 | 旋转平面的第一个轴。 |
dim2 | 旋转平面的第二个轴。 |
**kwds | 未归档 |
origin | 旋转原点。如果未指定,则原点将是坐标系的原点。 |
缩放布局。
缩放参数可以通过scale关键字参数或通过普通的未命名参数提供。如果给出一个整数或浮点数,则将其解释为要应用于所有维度的统一乘数。如果它是一个列表或元组,则其长度必须等于布局中的维度数,并且每个元素必须是描述其中一个维度中的缩放系数的整数或浮点数。
参数 | |
*args | 未归档 |
**kwds | 未归档 |
scale | 缩放系数(整数、浮点数、列表或元组) |
origin | 缩放原点(此点将保持原位)。可选,默认为正在使用的坐标系的原点。 |
将平面布局转换为径向布局
此方法仅适用于 2D 布局。布局的 X 坐标被转换为角度,其中 min(x) 对应于名为 min_angle 的参数,max(y) 对应于 max_angle。角度以度为单位给出,零度对应于指向上方的方向。Y 坐标被解释为半径,其中 min(y) 属于参数中给出的最小半径,max(y) 属于最大半径。
这不是一个完全通用的极坐标变换,但它在从普通的自上而下的布局创建径向树布局时非常有用(这就是 Y 坐标属于半径的原因)。它也可以与 Fruchterman-Reingold 布局算法结合使用,通过其 miny 和 maxy 参数(参见 Graph.layout_fruchterman_reingold()
)来生成径向布局,其中半径属于顶点的某些属性。
参数 | |
min | 对应于最小 X 值的角度 |
max | 对应于最大 X 值的角度 |
min | 对应于最小 Y 值的半径 |
max | 对应于最大 Y 值的半径 |