Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Actually, the correct data is given. You specified implicit_plot(f==1,(x,-2,2),(y,-3,3)), so it gave you exactly those bounds. If you had done

sage: G=implicit_plot(f==1,(x,-1,1),(y,-1,1))
sage: G.get_minmax_data()
{'xmin': -1.0, 'ymin': -1.0, 'ymax': 1.0, 'xmax': 1.0}

you'd get what you expect.

What is going on here is that implicit_plot just creates a contour plot of the equation with only one contour level.

sage: G=contour_plot(f==1,(x,-1,1),(y,-1,1),contours=[0],fill=False); G

As to your question, this is the attribute (not method)

sage: g = G[0]
sage: g.xy_data_array

Which is large, as it's the values of the function at EVERY data point! Only the 'right' points are connected, using matplotlib's contour functionality. See this as well:

sage: sage.plot.contour_plot.ContourPlot??
class ContourPlot(GraphicPrimitive):
    Primitive class for the contour plot graphics type.  See 
    ``contour_plot?`` for help actually doing contour plots.


    - ``xy_data_array`` - list of lists giving evaluated values of the function on the grid

I hope this helps! By the way, as long as you are in the Sage interpreter or notebook (or a .sage file), you can do f(x,y)=x^2+y^2; you only need ** if you are writing a Python file.