search in docstrings

Search bar offers the following options:

- Term presence. The below example searches for documents that must contain “foo”, might contain “bar” and must not contain “baz”: `+foo bar -baz`
- Wildcards. The below example searches for documents with words beginning with “foo”: `foo*`
- Search in specific fields. The following search matches all objects in "twisted.mail" that matches “search”: `+qname:twisted.mail.* +search`

  Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'. Last two fields are only applicable if "search in docstrings" is enabled.

- Fuzzy matches. The following search matches all documents that have a word within 1 edit distance of “foo”: `foo~1`

Results provided by Lunr.js

# ``igraph`.`drawing`.`graph``

module documentation
(source)

Drawing routines to draw graphs.

This module contains routines to draw graphs on:

- Cairo surfaces (`DefaultGraphDrawer`)
- Matplotlib axes (`MatplotlibGraphDrawer`)

It also contains routines to send an igraph graph directly to (Cytoscape) using the (CytoscapeRPC plugin), see `CytoscapeGraphDrawer`. `CytoscapeGraphDrawer` can also fetch the current network from Cytoscape and convert it to igraph format.

Class | `CytoscapeGraphDrawer` | Graph drawer that sends/receives graphs to/from Cytoscape using CytoscapeRPC.
Class | `GephiGraphStreamingDrawer` | Graph drawer that sends a graph to a file-like object (e.g., socket, URL connection, file) using the Gephi graph streaming format.
Function | `__plot__` | Plots the graph to the given Cairo context or matplotlib Axes.

def __plot__(self, backend, context, *args, **kwds): (source)

Plots the graph to the given Cairo context or matplotlib Axes.

The visual style of vertices and edges can be modified at three places in the following order of precedence (lower indices override higher indices):

1. Keyword arguments of this function (or of `plot()` which is passed intact to `Graph.__plot__()`.
2. Vertex or edge attributes, specified later in the list of keyword arguments.
3. igraph-wide plotting defaults (see `igraph.config.Configuration`)
4. Built-in defaults.

E.g., if the `vertex_size` keyword attribute is not present, but there exists a vertex attribute named `size`, the sizes of the vertices will be specified by that attribute.

Besides the usual self-explanatory plotting parameters (`context`, `bbox`, `palette`), it accepts the following keyword arguments:

- `autocurve`: whether to use curves instead of straight lines for multiple edges on the graph plot. This argument may be `True` or `False`; when omitted, `True` is assumed for graphs with less than 10.000 edges and `False` otherwise.

- `drawer_factory`: a subclass of `AbstractCairoGraphDrawer` which will be used to draw the graph. You may also provide a function here which takes two arguments: the Cairo context to draw on and a bounding box (an instance of `BoundingBox`). If this keyword argument is missing, igraph will use the default graph drawer which should be suitable for most purposes. It is safe to omit this keyword argument unless you need to use a specific graph drawer.

- `keep_aspect_ratio`: whether to keep the aspect ratio of the layout that igraph calculates to place the nodes. `True` means that the layout will be scaled proportionally to fit into the bounding box where the graph is to be drawn but the aspect ratio will be kept the same (potentially leaving empty space next to, below or above the graph). `False` means that the layout will be scaled independently along the X and Y axis in order to fill the entire bounding box. The default is `False`.

- `layout`: the layout to be used. If not an instance of `Layout`, it will be passed to `layout` to calculate the layout. Note that if you want a deterministic layout that does not change with every plot, you must either use a deterministic layout function (like `GraphBase.layout_circle`) or calculate the layout in advance and pass a `Layout` object here.

- `margin`: the top, right, bottom, left margins as a 4-tuple. If it has less than 4 elements or is a single float, the elements will be re-used until the length is at least 4.

- `mark_groups`: whether to highlight some of the vertex groups by colored polygons. This argument can be one of the following:

  - `False`: no groups will be highlighted
  - `True`: only valid if the object plotted is a `VertexClustering` or `VertexCover`. The vertex groups in the clutering or cover will be highlighted such that the i-th group will be colored by the i-th color from the current palette. If used when plotting a graph, it will throw an error.
  - A dict mapping tuples of vertex indices to color names. The given vertex groups will be highlighted by the given colors.
  - A list containing pairs or an iterable yielding pairs, where the first element of each pair is a list of vertex indices and the second element is a color.
  - A `VertexClustering` or `VertexCover` instance. The vertex groups in the clustering or cover will be highlighted such that the i-th group will be colored by the i-th color from the current palette.

  In place of lists of vertex indices, you may also use `VertexSeq` instances.

  In place of color names, you may also use color indices into the current palette. `None` as a color name will mean that the corresponding group is ignored.

- `vertex_size`: size of the vertices. The corresponding vertex attribute is called `size`. The default is 10. Vertex sizes are measured in the unit of the Cairo context on which igraph is drawing.

- `vertex_color`: color of the vertices. The corresponding vertex attribute is `color`, the default is red. Colors can be specified either by common X11 color names (see the source code of `igraph.drawing.colors` for a list of known colors), by 3-tuples of floats (ranging between 0 and 255 for the R, G and B components), by CSS-style string specifications (`#rrggbb`) or by integer color indices of the specified palette.

- `vertex_frame_color`: color of the frame (i.e. stroke) of the vertices. The corresponding vertex attribute is `frame_color`, the default is black. See `vertex_color` for the possible ways of specifying a color.

- `vertex_frame_width`: the width of the frame (i.e. stroke) of the vertices. The corresponding vertex attribute is `frame_width`. The default is 1. Vertex frame widths are measured in the unit of the Cairo context on which igraph is drawing.

- `vertex_shape`: shape of the vertices. Alternatively it can be specified by the `shape` vertex attribute. Possibilities are: `square`, {circle}, {triangle}, {triangle-down} or `hidden`. See the source code of `igraph.drawing` for a list of alternative shape names that are also accepted and mapped to these.

- `vertex_label`: labels drawn next to the vertices. The corresponding vertex attribute is `label`.

- `vertex_label_dist`: distance of the midpoint of the vertex label from the center of the corresponding vertex. The corresponding vertex attribute is `label_dist`.

- `vertex_label_color`: color of the label. Corresponding vertex attribute: `label_color`. See `vertex_color` for color specification syntax.

- `vertex_label_size`: font size of the label, specified in the unit of the Cairo context on which we are drawing. Corresponding vertex attribute: `label_size`.

- `vertex_label_angle`: the direction of the line connecting the midpoint of the vertex with the midpoint of the label. This can be used to position the labels relative to the vertices themselves in conjunction with `vertex_label_dist`. Corresponding vertex attribute: `label_angle`. The default is `-math.pi/2`.

- `vertex_order`: drawing order of the vertices. This must be a list or tuple containing vertex indices; vertices are then drawn according to this order.

- `vertex_order_by`: an alternative way to specify the drawing order of the vertices; this attribute is interpreted as the name of a vertex attribute, and vertices are drawn such that those with a smaller attribute value are drawn first. You may also reverse the order by passing a tuple here; the first element of the tuple should be the name of the attribute, the second element specifies whether the order is reversed (`True`, `False`, `"asc"` and `"desc"` are accepted values).

- `edge_color`: color of the edges. The corresponding edge attribute is `color`, the default is red. See `vertex_color` for color specification syntax.

- `edge_curved`: whether the edges should be curved. Positive numbers correspond to edges curved in a counter-clockwise direction, negative numbers correspond to edges curved in a clockwise direction. Zero represents straight edges. `True` is interpreted as 0.5, `False` is interpreted as 0. The default is 0 which makes all the edges straight.

- `edge_width`: width of the edges in the default unit of the Cairo context on which we are drawing. The corresponding edge attribute is `width`, the default is 1.

- `edge_arrow_size`: arrow size of the edges. The corresponding edge attribute is `arrow_size`, the default is 1.

- `edge_arrow_width`: width of the arrowhead on the edge. The corresponding edge attribute is `arrow_width`, the default is 1.

- `edge_order`: drawing order of the edges. This must be a list or tuple containing edge indices; edges are then drawn according to this order.

- `edge_order_by`: an alternative way to specify the drawing order of the edges; this attribute is interpreted as the name of an edge attribute, and edges are drawn such that those with a smaller attribute value are drawn first. You may also reverse the order by passing a tuple here; the first element of the tuple should be the name of the attribute, the second element specifies whether the order is reversed (`True`, `False`, `"asc"` and `"desc"` are accepted values).