""" Plotting helpers. * We set the default tick_formatter to 'latex'. * We replace the plot() function with our own version that sets some default legend options. """ from sage.all import * # Graphics.SHOW_OPTIONS contains the default options that will be # passed to show(). It already handles merging the user-specified # options, so we just tap into that power. show_opts = sage.plot.graphics.Graphics.SHOW_OPTIONS show_opts['tick_formatter'] = 'latex' # Save the default plot() function so that we can call it within # mjo_plot and not die of recursion. sage_plot = plot def mjo_plot(*args, **kwargs): """ Replacement for the default plot function. - If there's a legend, set the background color to 'white' and give it a drop shadow. """ default_legend_opts = { 'back_color': 'white', 'shadow': True } # Create an empty plot using the default options. p = Graphics() p.set_legend_options(**default_legend_opts) # After trac #12936, this should propagate those options. p += sage_plot(*args, **kwargs) return p # Replace both the global `plot` and the ones in the modules. I am # unclear about why this is necessary, and don't care too much. plot = mjo_plot sage.plot.plot.plot = mjo_plot sage.plot.all.plot = mjo_plot