ginput is a function that enables you to select points from a figure using the mouse. This post is a simple example on how to use it.
from pylab import plot, ginput, show, axis
axis([-1, 1, -1, 1])
print "Please click three times"
pts = ginput(3) # it will wait for three clicks
print "The point selected are"
print pts # ginput returns points as tuples
x=map(lambda x: x[0],pts) # map applies the function passed as
y=map(lambda x: x[1],pts) # first parameter to each element of pts
plot(x,y,'-o')
axis([-1, 1, -1, 1])
show()
And after three clicks this is the result on the console:
Please click three times
The point selected are
[(-0.77468982630272942, -0.3418367346938776), (0.11464019851116632, -0.21428571428571436), (0.420347394540943, 0.55612244897959173)]
and this is the figure generated:
For teaching purposes, I'd find it more transparent instead of using map to instead say:
ReplyDeletepts=array(pts)
x=pts[:,0]
y=pts[:,1]
I agree, map is not very intuitive
Deletei m getting error: matplotlib does not support generators as input
ReplyDeletehi, it's because you are using Python 3 and this is a pretty old example. Convert x and y to lists. That should solve the problem.
Delete