##// END OF EJS Templates
Fixed scrolling bugs when using rich text mode. (Work around probable bug in Qt.)
Fixed scrolling bugs when using rich text mode. (Work around probable bug in Qt.)

File last commit:

r2890:8ecc9ec4
r2914:b632108f
Show More
backend_payload_svg.py
39 lines | 1.3 KiB | text/x-python | PythonLexer
/ IPython / zmq / pylab / backend_payload_svg.py
"""Produce SVG versions of active plots for display by the rich Qt frontend.
"""
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
# Standard library imports
from cStringIO import StringIO
# System library imports.
from matplotlib.backends.backend_svg import new_figure_manager
from matplotlib._pylab_helpers import Gcf
# Local imports.
from backend_payload import add_plot_payload
#-----------------------------------------------------------------------------
# Functions
#-----------------------------------------------------------------------------
def show():
""" Deliver a SVG payload.
"""
for figure_manager in Gcf.get_all_fig_managers():
# Make the background transparent.
# figure_manager.canvas.figure.patch.set_alpha(0.0)
# Set the background to white instead so it looks good on black.
figure_manager.canvas.figure.set_facecolor('white')
figure_manager.canvas.figure.set_edgecolor('white')
data = svg_from_canvas(figure_manager.canvas)
add_plot_payload('svg', data)
def svg_from_canvas(canvas):
""" Return a string containing the SVG representation of a FigureCanvasSvg.
"""
string_io = StringIO()
canvas.print_svg(string_io)
return string_io.getvalue()