matplotlib.backends.backend_cairo
¶Author: | Steve Chaplin and others |
---|
This backend depends on cairo, and either on cairocffi, or (Python 2 only) on pycairo.
matplotlib.backends.backend_cairo.
ArrayWrapper
(myarray)¶Bases: object
Thin wrapper around numpy ndarray to expose the interface expected by cairocffi. Basically replicates the array.array interface.
buffer_info
()¶matplotlib.backends.backend_cairo.
FigureCanvas
¶alias of matplotlib.backends.backend_cairo.FigureCanvasCairo
matplotlib.backends.backend_cairo.
FigureCanvasCairo
(figure)¶Bases: matplotlib.backend_bases.FigureCanvasBase
print_pdf
(fobj, *args, **kwargs)¶print_png
(fobj, *args, **kwargs)¶print_ps
(fobj, *args, **kwargs)¶print_svg
(fobj, *args, **kwargs)¶print_svgz
(fobj, *args, **kwargs)¶supports_blit
= False¶matplotlib.backends.backend_cairo.
GraphicsContextCairo
(renderer)¶Bases: matplotlib.backend_bases.GraphicsContextBase
get_rgb
()¶returns a tuple of three or four floats from 0-1.
restore
()¶Restore the graphics context from the stack - needed only for backends that save graphics contexts on a stack
set_alpha
(alpha)¶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)¶Set the capstyle as a string in (‘butt’, ‘round’, ‘projecting’)
set_clip_path
(path)¶Set the clip path and transformation. Path should be a
TransformedPath
instance.
set_clip_rectangle
(rectangle)¶Set the clip rectangle with sequence (left, bottom, width, height)
set_dashes
(offset, dashes)¶Set the dash style for the gc.
Parameters: | dash_offset : float
dash_list : array_like
|
---|
set_foreground
(fg, isRGBA=None)¶Set the foreground color. fg can be a MATLAB format string, a html hex color string, an rgb or rgba unit tuple, or a float between 0 and 1. In the latter case, grayscale is used.
If you know fg is rgba, set isRGBA=True
for efficiency.
set_joinstyle
(js)¶Set the join style to be one of (‘miter’, ‘round’, ‘bevel’)
set_linewidth
(w)¶Set the linewidth in points
matplotlib.backends.backend_cairo.
RendererCairo
(dpi)¶Bases: matplotlib.backend_bases.RendererBase
convert_path
(path, transform, clip=None)¶draw_image
(gc, x, y, im)¶Draw an RGBA image.
Parameters: | gc :
x : scalar
y : scalar
im : array_like, shape=(N, M, 4), dtype=np.uint8
transform :
|
---|
draw_markers
(gc, marker_path, marker_trans, path, transform, rgbFace=None)¶Draws a marker at each of the vertices in path. This includes all vertices, including control points on curves. To avoid that behavior, those vertices should be removed before calling this function.
This provides a fallback implementation of draw_markers that
makes multiple calls to draw_path()
. Some backends may
want to override this method in order to draw the marker only
once and reuse it multiple times.
Parameters: | gc :
marker_trans :
trans :
|
---|
draw_path
(gc, path, transform, rgbFace=None)¶Draws a Path
instance using the
given affine transform.
draw_text
(gc, x, y, s, prop, angle, ismath=False, mtext=None)¶Draw the text instance
Parameters: | gc :
x : scalar
y : scalar
s : str
prop :
angle : scalar
mtext :
|
---|
Notes
backend implementers note
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.
fontangles
= {'italic': <MyCairoCffi name='mock.FONT_SLANT_ITALIC' id='140004350807848'>, 'normal': <MyCairoCffi name='mock.FONT_SLANT_NORMAL' id='140004350812112'>, 'oblique': <MyCairoCffi name='mock.FONT_SLANT_OBLIQUE' id='140004350824632'>}¶fontweights
= {100: <MyCairoCffi name='mock.FONT_WEIGHT_NORMAL' id='140004350787032'>, 200: <MyCairoCffi name='mock.FONT_WEIGHT_NORMAL' id='140004350787032'>, 300: <MyCairoCffi name='mock.FONT_WEIGHT_NORMAL' id='140004350787032'>, 400: <MyCairoCffi name='mock.FONT_WEIGHT_NORMAL' id='140004350787032'>, 500: <MyCairoCffi name='mock.FONT_WEIGHT_NORMAL' id='140004350787032'>, 600: <MyCairoCffi name='mock.FONT_WEIGHT_BOLD' id='140004350799488'>, 700: <MyCairoCffi name='mock.FONT_WEIGHT_BOLD' id='140004350799488'>, 800: <MyCairoCffi name='mock.FONT_WEIGHT_BOLD' id='140004350799488'>, 900: <MyCairoCffi name='mock.FONT_WEIGHT_BOLD' id='140004350799488'>, 'ultralight': <MyCairoCffi name='mock.FONT_WEIGHT_NORMAL' id='140004350787032'>, 'light': <MyCairoCffi name='mock.FONT_WEIGHT_NORMAL' id='140004350787032'>, 'normal': <MyCairoCffi name='mock.FONT_WEIGHT_NORMAL' id='140004350787032'>, 'medium': <MyCairoCffi name='mock.FONT_WEIGHT_NORMAL' id='140004350787032'>, 'regular': <MyCairoCffi name='mock.FONT_WEIGHT_NORMAL' id='140004350787032'>, 'semibold': <MyCairoCffi name='mock.FONT_WEIGHT_BOLD' id='140004350799488'>, 'bold': <MyCairoCffi name='mock.FONT_WEIGHT_BOLD' id='140004350799488'>, 'heavy': <MyCairoCffi name='mock.FONT_WEIGHT_BOLD' id='140004350799488'>, 'ultrabold': <MyCairoCffi name='mock.FONT_WEIGHT_BOLD' id='140004350799488'>, 'black': <MyCairoCffi name='mock.FONT_WEIGHT_BOLD' id='140004350799488'>}¶get_canvas_width_height
()¶return the canvas width and height in display coords
get_text_width_height_descent
(s, prop, ismath)¶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
()¶Return an instance of a GraphicsContextBase
points_to_pixels
(points)¶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.0 * dpi/72.0
Parameters: | points : scalar or array_like
|
---|---|
Returns: | Points converted to pixels |
set_ctx_from_surface
(surface)¶set_width_height
(width, height)¶