##// END OF EJS Templates
Implement object info protocol....
Implement object info protocol. Not fully finished yet, but most things work.

File last commit:

r2890:8ecc9ec4
r2931:e7e389c1
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()