首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义点数的matplotlibs ginput()

未定义点数的matplotlibs ginput()
EN

Stack Overflow用户
提问于 2012-06-07 01:23:50
回答 1查看 7.4K关注 0票数 5

我需要使用matplotlib函数ginput()在图中定义一个区域。然而,由于它是一个不规则的形状,并且在每个地块中都是不同的,所以我不能预先定义有多少个点,即

代码语言:javascript
复制
x = randn(10,10)
imshow(x)
n = I don't know yet
points = ginput(n)

有人知道该怎么做吗?谢谢,戴夫

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-08 17:58:42

从文档,即help(ginput)

自输入ginput(

、n=1、timeout=30、show_clicks=True、mouse_add=1、mouse_pop=3、mouse_stop=2)

与图形交互的阻塞调用。

这将等待用户的n次点击,并返回每次点击的坐标列表。

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

如果n为零或负,则累积单击次数,直到单击鼠标中键(或同时单击两个鼠标按键)终止输入。

单击鼠标右键可取消上次输入。

可以通过参数*mouse_add*、*mouse_pop*和*mouse_stop*重写用于各种操作(添加点、移除点、终止输入)的按钮,这些参数提供了相关的鼠标按钮:1代表左,2代表中间,3代表右。

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

我们可以设置ginput n=0等待鼠标中键点击,而不是一定数量的点数。我们可以设置n=0让ginput等待鼠标中键点击,而不是一定数量的点。

额外的好处:设置timeout=0会阻止ginput在默认的30秒后退出。对于复杂的情节,我觉得这很烦人。

示例代码:

代码语言:javascript
复制
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.
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10919051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档