Package igraph :: Package drawing :: Class Plot
[hide private]
[frames] | no frames]

Class Plot

source code

object --+
         |
        Plot

Class representing an arbitrary plot

Every plot has an associated surface object where the plotting is done. The surface is an instance of cairo.Surface, a member of the pycairo library. The surface itself provides a unified API to various plotting targets like SVG files, X11 windows, PostScript files, PNG files and so on. igraph usually does not know on which surface it is plotting right now, since pycairo takes care of the actual drawing. Everything that's supported by pycairo should be supported by this class as well.

Current Cairo surfaces that I'm aware of are:

If you create a Plot object with a string given as the target surface, the string will be treated as a filename, and its extension will decide which surface class will be used. Please note that not all surfaces might be available, depending on your pycairo installation.

A Plot has an assigned default palette (see igraph.drawing.colors.Palette) which is used for plotting objects.

A Plot object also has a list of objects to be plotted with their respective bounding boxes, palettes and opacities. Palettes assigned to an object override the default palette of the plot. Objects can be added by the Plot.add method and removed by the Plot.remove method.

Instance Methods [hide private]
 
__init__(self, target=None, bbox=None, palette=None, background=None)
Creates a new plot.
source code
 
add(self, obj, bbox=None, palette=None, opacity=1.0, *args, **kwds)
Adds an object to the plot.
source code
 
remove(self, obj, bbox=None, idx=1)
Removes an object from the plot.
source code
 
mark_dirty(self)
Marks the plot as dirty (should be redrawn)
source code
 
redraw(self, context=None)
Redraws the plot
source code
 
save(self, fname=None)
Saves the plot.
source code
 
show(self)
Saves the plot to a temporary file and shows it.
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Properties [hide private]
  background
Returns the background color of the plot.
  bounding_box
Returns the bounding box of the Cairo surface as a BoundingBox object
  height
Returns the height of the Cairo surface on which the plot is drawn
  surface
Returns the Cairo surface on which the plot is drawn
  width
Returns the width of the Cairo surface on which the plot is drawn

Inherited from object: __class__

Method Details [hide private]

__init__(self, target=None, bbox=None, palette=None, background=None)
(Constructor)

source code 

Creates a new plot.

Parameters:
  • target - the target surface to write to. 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.
    • string -- a file with the given name will be created and an appropriate Cairo surface will be attached to it.
  • bbox - the bounding box of the surface. It is interpreted differently with different surfaces: PDF and PS surfaces will treat it as points (1 point = 1/72 inch). Image surfaces will treat it as pixels. SVG surfaces will treat it as an abstract unit, but it will mostly be interpreted as pixels when viewing the SVG file in Firefox.
  • 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.
  • background - the background color. If None, the background will be transparent. You can use any color specification here that is understood by igraph.drawing.colors.color_name_to_rgba.
Overrides: object.__init__

add(self, obj, bbox=None, palette=None, opacity=1.0, *args, **kwds)

source code 

Adds an object to the plot.

Arguments not specified here are stored and passed to the object's plotting function when necessary. Since you are most likely interested in the arguments acceptable by graphs, see Graph.__plot__ for more details.

Parameters:
  • obj - the object to be added
  • bbox - the bounding box of the object. If None, the object will fill the entire area of the plot.
  • palette - the color palette used for drawing the object. If the object tries to get a color assigned to a positive integer, it will use this palette. If None, defaults to the global palette of the plot.
  • opacity - the opacity of the object being plotted, in the range 0.0-1.0

See Also: Graph.__plot__

remove(self, obj, bbox=None, idx=1)

source code 

Removes an object from the plot.

If the object has been added multiple times and no bounding box was specified, it removes the instance which occurs idxth in the list of identical instances of the object.

Parameters:
  • obj - the object to be removed
  • bbox - optional bounding box specification for the object. If given, only objects with exactly this bounding box will be considered.
  • idx - if multiple objects match the specification given by obj and bbox, only the idxth occurrence will be removed.
Returns:
True if the object has been removed successfully, False if the object was not on the plot at all or idx was larger than the count of occurrences

save(self, fname=None)

source code 

Saves the plot.

Parameters:
  • fname - the filename to save to. It is ignored if the surface of the plot is not an ImageSurface.

Property Details [hide private]

background

Returns the background color of the plot. None means a transparent background.

Get Method:
unreachable.background(self) - Returns the background color of the plot.
Set Method:
unreachable.background(self, color) - Sets the background color of the plot.

bounding_box

Returns the bounding box of the Cairo surface as a BoundingBox object

Get Method:
unreachable.bounding_box(self) - Returns the bounding box of the Cairo surface as a BoundingBox object

height

Returns the height of the Cairo surface on which the plot is drawn

Get Method:
unreachable.height(self) - Returns the height of the Cairo surface on which the plot is drawn

surface

Returns the Cairo surface on which the plot is drawn

Get Method:
unreachable.surface(self) - Returns the Cairo surface on which the plot is drawn

width

Returns the width of the Cairo surface on which the plot is drawn

Get Method:
unreachable.width(self) - Returns the width of the Cairo surface on which the plot is drawn