backend_cairo
#
A Cairo backend for Matplotlib#
- Author:
Steve Chaplin and others
This backend depends on cairocffi or pycairo.
- matplotlib.backends.backend_cairo.FigureCanvas[source]#
alias of
FigureCanvasCairo
- class matplotlib.backends.backend_cairo.FigureCanvasCairo(figure=None)[source]#
Bases:
FigureCanvasBase
- print_pdf(fobj, *, orientation='portrait')#
- print_ps(fobj, *, orientation='portrait')#
- print_svg(fobj, *, orientation='portrait')#
- print_svgz(fobj, *, orientation='portrait')#
- class matplotlib.backends.backend_cairo.GraphicsContextCairo(renderer)[source]#
Bases:
GraphicsContextBase
- restore()[source]#
Restore the graphics context from the stack - needed only for backends that save graphics contexts on a stack.
- set_alpha(alpha)[source]#
Set the alpha value used for blending - not supported on all backends.
If
alpha=None
(the default), the alpha components of the foreground and fill colors will be used to set their respective transparencies (where applicable); otherwise,alpha
will override them.
- set_capstyle(cs)[source]#
Set how to draw endpoints of lines.
- Parameters:
- cs
CapStyle
or {'butt', 'projecting', 'round'}
- cs
- set_clip_path(path)[source]#
Set the clip path to a
TransformedPath
or None.
- set_dashes(offset, dashes)[source]#
Set the dash style for the gc.
- Parameters:
- dash_offsetfloat
Distance, in points, into the dash pattern at which to start the pattern. It is usually set to 0.
- dash_listarray-like or None
The on-off sequence as points. None specifies a solid line. All values must otherwise be non-negative (\(\ge 0\)).
Notes
See p. 666 of the PostScript Language Reference for more info.
- set_foreground(fg, isRGBA=None)[source]#
Set the foreground color.
- Parameters:
- fgcolor
- isRGBAbool
If fg is known to be an
(r, g, b, a)
tuple, isRGBA can be set to True to improve performance.
- class matplotlib.backends.backend_cairo.RendererCairo(dpi)[source]#
Bases:
RendererBase
- draw_image(gc, x, y, im)[source]#
Draw an RGBA image.
- Parameters:
- gc
GraphicsContextBase
A graphics context with clipping information.
- xscalar
The distance in physical units (i.e., dots or pixels) from the left hand side of the canvas.
- yscalar
The distance in physical units (i.e., dots or pixels) from the bottom side of the canvas.
- im(N, M, 4) array-like of np.uint8
An array of RGBA pixels.
- transform
matplotlib.transforms.Affine2DBase
If and only if the concrete backend is written such that
option_scale_image
returnsTrue
, an affine transformation (i.e., anAffine2DBase
) may be passed todraw_image
. The translation vector of the transformation is given in physical units (i.e., dots or pixels). Note that the transformation does not override x and y, and has to be applied before translating the result by x and y (this can be accomplished by adding x and y to the translation vector defined by transform).
- gc
- draw_markers(gc, marker_path, marker_trans, path, transform, rgbFace=None)[source]#
Draw a marker at each of path's vertices (excluding control points).
The base (fallback) implementation makes multiple calls to
draw_path
. Backends may want to override this method in order to draw the marker only once and reuse it multiple times.- Parameters:
- gc
GraphicsContextBase
The graphics context.
- marker_trans
matplotlib.transforms.Transform
An affine transform applied to the marker.
- trans
matplotlib.transforms.Transform
An affine transform applied to the path.
- gc
- draw_path(gc, path, transform, rgbFace=None)[source]#
Draw a
Path
instance using the given affine transform.
- draw_text(gc, x, y, s, prop, angle, ismath=False, mtext=None)[source]#
Draw a text instance.
- Parameters:
- gc
GraphicsContextBase
The graphics context.
- xfloat
The x location of the text in display coords.
- yfloat
The y location of the text baseline in display coords.
- sstr
The text string.
- prop
matplotlib.font_manager.FontProperties
The font properties.
- anglefloat
The rotation angle in degrees anti-clockwise.
- mtext
matplotlib.text.Text
The original text object to be rendered.
- gc
Notes
Note for backend implementers:
When you are trying to determine if you have gotten your bounding box right (which is what enables the text layout/alignment to work properly), it helps to change the line in text.py:
if 0: bbox_artist(self, renderer)
to if 1, and then the actual bounding box will be plotted along with your text.
- get_text_width_height_descent(s, prop, ismath)[source]#
Get the width, height, and descent (offset from the bottom to the baseline), in display coords, of the string s with
FontProperties
prop.
- new_gc()[source]#
Return an instance of a
GraphicsContextBase
.
- points_to_pixels(points)[source]#
Convert points to display units.
You need to override this function (unless your backend doesn't have a dpi, e.g., postscript or svg). Some imaging systems assume some value for pixels per inch:
points to pixels = points * pixels_per_inch/72 * dpi/72
- Parameters:
- pointsfloat or array-like
a float or a numpy array of float
- Returns:
- Points converted to pixels