Let's say you've made a plot with Sage, but you want to fix one or two formatting details, and Sage doesn't give you enough control. In this example, we'll use the object-oriented interface of matplotlib:
# Create a Sage plot, as shown in the first example p1 = plot(sin, (-2*pi, 2*pi), thickness=2.0, rgbcolor=(0.5,1,0)) p2 = plot(cos, (-2*pi, 2*pi), thickness=3.0, color='purple', alpha=0.5) plt = p1 + p2 # Get the Matplotlib object fig = plt.matplotlib() from matplotlib.backends.backend_agg import FigureCanvasAgg fig.set_canvas(FigureCanvasAgg(fig)) # this line is critical ax = fig.gca() # get current axes # Add a legend and plot title ax.legend(['sin(x)', 'cos(x)']) ax.set_title('Modified with matplotlib') # Add a y axis label in a custom location ymin, ymax = ax.get_ylim() ax.set_ylim(ymin, ymax*1.2) ax.set_ylabel('$f(x)$', y=ymax*0.9) # Fancy annotation of a point of interest x_value = numerical_approx(-3*pi/4) y_value...