Python 点数未定义的matplotlibs ginput()

Python 点数未定义的matplotlibs ginput(),python,matplotlib,Python,Matplotlib,我需要使用matplotlib函数ginput()在绘图中定义一个区域。然而,由于它是一个不规则的形状,并且在每个图中都会有所不同,所以我无法定义在手之前会有多少点,即 x = randn(10,10) imshow(x) n = I don't know yet points = ginput(n) 有人知道怎么做吗?? 谢谢 Dave来自文档,即帮助(ginput) ginput(self,n=1,timeout=30,show\u clicks=True,mouse\u add=1,mo

我需要使用matplotlib函数ginput()在绘图中定义一个区域。然而,由于它是一个不规则的形状,并且在每个图中都会有所不同,所以我无法定义在手之前会有多少点,即

x = randn(10,10)
imshow(x)
n = I don't know yet
points = ginput(n)
有人知道怎么做吗?? 谢谢
Dave

来自文档,即帮助(ginput)

ginput(self,n=1,timeout=30,show\u clicks=True,mouse\u add=1,mouse\u pop=3,mouse\u stop=2)

阻止调用以与图形交互

这将等待用户n次单击并返回 每次单击的坐标

如果超时为零或负,则不超时

如果n为零或负,则累积单击,直到单击鼠标中键 (或可能同时使用两个鼠标按钮)终止输入

右键单击取消最后一次输入

用于各种操作(添加点、删除点)的按钮 点,终止输入)可通过 参数*mouse\u add*、*mouse\u pop*和*mouse\u stop*,给出 关联的鼠标按钮:1表示左侧,2表示中间,3表示中间 对

键盘也可用于选择鼠标所需的点 没有一个或多个按钮。删除和退格 关键点的作用类似于右键单击(即删除最后一点),输入关键点 终止输入和任何其他键(窗口尚未使用) 管理器)选择一个点

我们可以设置
n=0
让ginput等待鼠标中键而不是设置点数

奖励:设置
timeout=0
可在默认30秒后停止ginput退出。对于复杂的情节,我觉得这很烦人

示例代码:

import pylab
x = randn(10,10)
imshow(x)
points = ginput(0, 0)
# Select the points defining your region from the
# plot then middle click to terminate ginput.

我不认为你能做到这一点,因为它不知道什么时候停止。。。尝试使用TK、wx、pygame或其他框架来监听鼠标点击并记录坐标,然后在满足停止条件时使用不同的方法来绘制它。。。或者每次单击后绘图定义点数的是什么?x=randn(10,10)imshow(x)button=False points=[]而button==False:points.append(ginput(1))button=waitforbuttonpress()以上内容几乎满足了我的需要,但需要双击来定义一个我想要避免的点@ms4py我需要在pcolor绘图中定义一个围绕局部最大值的区域,尽可能靠近边缘,这在每个绘图中是不同的,并且总是具有不规则的形状,因此无法预测需要多少点。