表示图的布局。
布局实际上是一个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 | 未记录 |
| p | 操作后布局的质心所在的位置。 |
将布局适配到给定的边界框内。
布局将被就地修改。
| 参数 | |
| bbox | 用于适应布局的边界框。如果布局的维度为d,它可以是一个d元组(定义框的大小),一个2d元组(定义框的左上角和右下角点的坐标),或者是一个BoundingBox对象(仅适用于2D布局)。 |
| keep | 是否保持当前布局的宽高比。如果为False,布局将重新缩放以完全适应边界框。如果为True,将保持布局的原始宽高比,并在边界框内居中显示。 |
在由给定的两个维度定义的平面上,将布局旋转给定的度数。
| 参数 | |
| angle | 旋转的角度,以度为单位指定。 |
| dim1 | 旋转平面的第一个轴。 |
| dim2 | 旋转平面的第二个轴。 |
| origin | 旋转的原点。如果未指定,原点将是坐标系的原点。 |
缩放布局。
缩放参数可以通过scale关键字参数或通过普通的未命名参数提供。如果给出的是单个整数或浮点数,它将被解释为应用于所有维度的统一乘数。如果它是一个列表或元组,其长度必须等于布局中的维度数,并且每个元素必须是描述其中一个维度缩放系数的整数或浮点数。
| 参数 | |
| *args | 未记录 |
| scale | 缩放系数(整数、浮点数、列表或元组) |
| origin | 缩放的起点(此点将保持不变)。可选,默认为所使用的坐标系的起点。 |
将平面布局转换为径向布局
此方法仅适用于2D布局。布局的X坐标被转换为一个角度,其中min(x)对应于名为min_angle的参数,max(y)对应于max_angle。角度以度为单位,零度对应于向上的方向。Y坐标被解释为半径,其中min(y)属于参数中给定的最小半径,max(y)属于最大半径。
这不是一个完全通用的极坐标变换,但在从普通的自上而下布局创建径向树布局时非常有用(这就是为什么Y坐标属于半径)。它还可以通过其miny和maxy参数与Fruchterman-Reingold布局算法结合使用(参见Graph.layout_fruchterman_reingold())以生成半径属于顶点某些属性的径向布局。
| 参数 | |
| min | 与最小X值对应的角度 |
| max | 对应于最大X值的角度 |
| min | 对应于最小Y值的半径 |
| max | 对应于最大Y值的半径 |