# Get list of coordinates from plot object

I'm looking for a way to get a plain list of coordinates from a plot object. For instance, after creating an implicit plot of a circle

p = implicit_plot(x^2+y^2-1,(x,-2,2),(y,-2,2))

I am able to save the image in .pdf or even .svg format (where coordinates are present), which is a very good start. What I really want, though, is a plain list of coordinates of, say, 2000 points lying on that circle. It should be possible to extract some from the .svg file, but is there a more convenient method? Maybe even one where I can set the sample size?

Thank you in advance for any suggestions.

edit retag close merge delete

Oh, definitely don't do this from the svg file! But I'm having a lot of trouble figuring out how to access this too. Basically, the implicit plot is a matplotlib contour subplot object - but acquiring it from p.matplotlib() seems challenging. Maybe I'm missing something obvious.

( 2012-08-24 17:08:20 +0100 )edit

Sort by ยป oldest newest most voted

I think maybe this works. I'm not an mpl expert, but at least the points correspond to the output of p.

sage: var('y')
y
sage: p = implicit_plot(x^2+y^2-1,(x,-2,2),(y,-2,2),plot_points=4)
sage: P = p.matplotlib()
sage: R = P.get_children()[1]
sage: S = R.collections[0]
sage: S.get_paths()
[Path([[-0.66666667 -0.70833333]
[-0.70833333 -0.66666667]
[-0.70833333  0.66666667]
[-0.66666667  0.70833333]
[ 0.66666667  0.70833333]
[ 0.70833333  0.66666667]
[ 0.70833333 -0.66666667]
[ 0.66666667 -0.70833333]
[-0.66666667 -0.70833333]], None)]
sage: S = R.collections[1]
sage: S.get_paths()
[Path([[-0.66666667 -0.70833333]
[-0.70833333 -0.66666667]
[-0.70833333  0.66666667]
[-0.66666667  0.70833333]
[ 0.66666667  0.70833333]
[ 0.70833333  0.66666667]
[ 0.70833333 -0.66666667]
[ 0.66666667 -0.70833333]
[-0.66666667 -0.70833333]], None)]

more

Yes, this does exactly what I wanted. This is just great. I never would have guessed that descent into the depths of the matplotlib arrays. Thank you very much!

( 2012-08-24 21:33:25 +0100 )edit

Yeah, I don't really understand it either, but the graphic itself is NOT generated by Sage, but by mpl, so you have to just try stuff. Tab-completion rules!

( 2012-08-27 10:38:26 +0100 )edit