python-igraph manual

For using igraph from Python

   Home       Trees       Indices       Help   
Package igraph :: Package drawing
[hide private]

Package drawing

source code

Drawing and plotting routines for IGraph.

Plotting is dependent on the pycairo library which provides Python bindings to the popular Cairo library. This means that if you don't have pycairo installed, you won't be able to use the plotting capabilities. However, you can still use Graph.write_svg to save the graph to an SVG file and view it from Mozilla Firefox (free) or edit it in Inkscape (free), Skencil (formerly known as Sketch, also free) or Adobe Illustrator (not free, therefore I'm not linking to it :)).


License: GPL

Submodules [hide private]

Classes [hide private]
  DefaultGraphDrawer
Class implementing the default visualisation of a graph.
  BoundingBox
Class representing a bounding box (a rectangular area) that encloses some objects.
  Point
Class representing a point on the 2D plane.
  Rectangle
Class representing a rectangle.
  Plot
Class representing an arbitrary plot
Functions [hide private]
 
plot(obj, target=None, bbox=(0, 0, 600, 600), *args, **kwds)
Plots the given object to the given target.
source code
Variables [hide private]
  __package__ = 'igraph.drawing'

Imports: StringIO, warn, os, platform, time, property, BytesIO, Configuration, Palette, palettes, find_cairo, _is_running_in_ipython, named_temporary_file, cairo, baseclasses, colors, edge, graph, metamagic, shapes, text, utils, vertex


Function Details [hide private]

plot(obj, target=None, bbox=(0, 0, 600, 600), *args, **kwds)

source code 

Plots the given object to the given target.

Positional and keyword arguments not explicitly mentioned here will be passed down to the __plot__ method of the object being plotted. Since you are most likely interested in the keyword arguments available for graph plots, see Graph.__plot__ as well.

Parameters:
  • obj - the object to be plotted
  • target - the target where the object should be plotted. It can be one of the following types:
    • None -- an appropriate surface will be created and the object will be plotted there.
    • cairo.Surface -- the given Cairo surface will be used. This can refer to a PNG image, an arbitrary window, an SVG file, anything that Cairo can handle.
    • string -- a file with the given name will be created and an appropriate Cairo surface will be attached to it. The supported image formats are: PNG, PDF, SVG and PostScript.
  • bbox - the bounding box of the plot. It must be a tuple with either two or four integers, or a BoundingBox object. If this is a tuple with two integers, it is interpreted as the width and height of the plot (in pixels for PNG images and on-screen plots, or in points for PDF, SVG and PostScript plots, where 72 pt = 1 inch = 2.54 cm). If this is a tuple with four integers, the first two denotes the X and Y coordinates of a corner and the latter two denoting the X and Y coordinates of the opposite corner.
  • opacity - the opacity of the object being plotted. It can be used to overlap several plots of the same graph if you use the same layout for them -- for instance, you might plot a graph with opacity 0.5 and then plot its spanning tree over it with opacity 0.1. To achieve this, you'll need to modify the Plot object returned with Plot.add.
  • palette - the palette primarily used on the plot if the added objects do not specify a private palette. Must be either an igraph.drawing.colors.Palette object or a string referring to a valid key of igraph.drawing.colors.palettes (see module igraph.drawing.colors) or None. In the latter case, the default palette given by the configuration key plotting.palette is used.
  • 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. The default margin is 20 on each side.
  • inline - whether to try and show the plot object inline in the current IPython notebook. Passing ``None`` here or omitting this keyword argument will look up the preferred behaviour from the shell.ipython.inlining.Plot configuration key. Note that this keyword argument has an effect only if igraph is run inside IPython and target is None.
Returns:
an appropriate Plot object.

See Also: Graph.__plot__


   Home       Trees       Indices       Help