Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python [matplotlib]:在Jupyter%matplotlib笔记本上使用ginput_Python_Matplotlib_Jupyter Notebook_Spyder - Fatal编程技术网

Python [matplotlib]:在Jupyter%matplotlib笔记本上使用ginput

Python [matplotlib]:在Jupyter%matplotlib笔记本上使用ginput,python,matplotlib,jupyter-notebook,spyder,Python,Matplotlib,Jupyter Notebook,Spyder,我想在Jupyter上使用matplotlib方法“ginput”,使用“%matplotlib notebook”,但它不起作用。这是你看到的。 如果我在Spyder上复制并通过该代码,那么它可以工作,但是如果我将其粘贴到Jupyter上,那么我会得到以下错误消息 Please click --------------------------------------------------------------------------- NotImplementedError

我想在Jupyter上使用matplotlib方法“ginput”,使用“%matplotlib notebook”,但它不起作用。这是你看到的。 如果我在Spyder上复制并通过该代码,那么它可以工作,但是如果我将其粘贴到Jupyter上,那么我会得到以下错误消息

Please click
---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<ipython-input-24-50d3ac899b10> in <module>()
      7 plt.plot(t, np.sin(t))
      8 print("Please click")
----> 9 x = plt.ginput(3)
     10 print("clicked", x)
     11 plt.show()

C:\Users\fedel\Anaconda2c\lib\site-packages\matplotlib\pyplot.pyc in ginput(*args, **kwargs)
    709     If *timeout* is negative, does not timeout.
    710     """
--> 711     return gcf().ginput(*args, **kwargs)
    712 
    713 

C:\Users\fedel\Anaconda2c\lib\site-packages\matplotlib\figure.pyc in ginput(self, n, timeout, show_clicks, mouse_add, mouse_pop, mouse_stop)
   1663                                                   mouse_stop=mouse_stop)
   1664         return blocking_mouse_input(n=n, timeout=timeout,
-> 1665                                     show_clicks=show_clicks)
   1666 
   1667     def waitforbuttonpress(self, timeout=-1):

C:\Users\fedel\Anaconda2c\lib\site-packages\matplotlib\blocking_input.pyc in __call__(self, n, timeout, show_clicks)
    292         self.clicks = []
    293         self.marks = []
--> 294         BlockingInput.__call__(self, n=n, timeout=timeout)
    295 
    296         return self.clicks

C:\Users\fedel\Anaconda2c\lib\site-packages\matplotlib\blocking_input.pyc in __call__(self, n, timeout)
    115         try:
    116             # Start event loop
--> 117             self.fig.canvas.start_event_loop(timeout=timeout)
    118         finally:  # Run even on exception like ctrl-c
    119             # Disconnect the callbacks

C:\Users\fedel\Anaconda2c\lib\site-packages\matplotlib\backends\backend_nbagg.pyc in start_event_loop(self, timeout)
    192 
    193     def start_event_loop(self, timeout):
--> 194         FigureCanvasBase.start_event_loop_default(self, timeout)
    195 
    196     def stop_event_loop(self):

C:\Users\fedel\Anaconda2c\lib\site-packages\matplotlib\backend_bases.pyc in start_event_loop_default(self, timeout)
   2443         self._looping = True
   2444         while self._looping and counter * timestep < timeout:
-> 2445             self.flush_events()
   2446             time.sleep(timestep)
   2447             counter += 1

C:\Users\fedel\Anaconda2c\lib\site-packages\matplotlib\backend_bases.pyc in flush_events(self)
   2388         backends with GUIs.
   2389         """
-> 2390         raise NotImplementedError
   2391 
   2392     def start_event_loop(self, timeout):

NotImplementedError: 
请点击
---------------------------------------------------------------------------
NotImplementedError回溯(最后一次调用)
在()
7 plt.图(t,np.sin(t))
8打印(“请点击”)
---->9 x=plt.ginput(3)
10打印(“点击”,x)
11 plt.show()
ginput中的C:\Users\fedel\Anaconda2c\lib\site packages\matplotlib\pyplot.pyc(*args,**kwargs)
709如果*timeout*为负值,则不超时。
710     """
-->711返回gcf().ginput(*args,**kwargs)
712
713
C:\Users\fedel\Anaconda2c\lib\site packages\matplotlib\figure.pyc in ginput(self、n、超时、显示单击、鼠标添加、鼠标弹出、鼠标停止)
1663鼠标停止=鼠标停止)
1664返回阻塞鼠标输入(n=n,超时=timeout,
->1665显示点击次数=显示点击次数)
1666
1667 def waitforbuttonpress(自身,超时=-1):
C:\Users\fedel\Anaconda2c\lib\site packages\matplotlib\blocking\u input.pyc in\u调用(self,n,timeout,show\u点击)
292个self.clicks=[]
293自我标记=[]
-->294阻塞输入。调用(self,n=n,timeout=timeout)
295
296返回self.clicks
C:\Users\fedel\Anaconda2c\lib\site packages\matplotlib\blocking\u input.pyc in\u调用(self,n,超时)
115尝试:
116#启动事件循环
-->117 self.fig.canvas.start\u event\u循环(超时=超时)
118最后:#即使在异常情况下运行,如ctrl-c
119#断开回调
C:\Users\fedel\Anaconda2c\lib\site packages\matplotlib\backends\backend\backend\u nbagg.pyc在开始\u事件\u循环中(self,超时)
192
193 def start_事件_循环(自身,超时):
-->194 FigureCanvabase.start\u事件\u循环\u默认值(自身,超时)
195
196 def停止事件循环(自):
C:\Users\fedel\Anaconda2c\lib\site packages\matplotlib\backend\u base.pyc in start\u event\u loop\u default(self,timeout)
2443自循环=真
2444自循环和计数器*时间步<超时时:
->2445自我刷新事件()
2446时间。睡眠(时间步)
2447计数器+=1
C:\Users\fedel\Anaconda2c\lib\site packages\matplotlib\backend\u base.pyc in flush\u事件(self)
2388个带有GUI的后端。
2389         """
->2390未执行的提升错误
2391
2392 def启动事件循环(自身,超时):
未实现错误:

您建议我如何使“ginput”方法在Jupyter上工作?

因为我只是在玩同一个示例,起初无法使其工作(尽管存在不同的问题,但从未得到具体的错误消息),以下是最终对我有效的方法:

添加

import matplotlib
matplotlib.use('TkAgg')

import matplotlib.pyplot as plt
然后在单独的窗口中打开绘图,该窗口在交互结束时关闭

由于我希望在较长的脚本中进行最终的绘图交互,我希望所有其他绘图都以内联方式显示,但交互绘图必须在单独的窗口中打开,因此我的脚本现在具有以下格式:

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
%matplotlib inline
# some plots
%matplotlib qt
# the interactive plot
%matplotlib inline
# the other plots

我在网上找到了很多不同的东西,但只有在这种组合中,它才能满足我的需要;)

由于我只是在玩同一个示例,起初无法让它工作(虽然有不同的问题,但从未收到具体的错误消息),以下是最终对我有效的方法:

添加

import matplotlib
matplotlib.use('TkAgg')

import matplotlib.pyplot as plt
然后在单独的窗口中打开绘图,该窗口在交互结束时关闭

由于我希望在较长的脚本中进行最终的绘图交互,我希望所有其他绘图都以内联方式显示,但交互绘图必须在单独的窗口中打开,因此我的脚本现在具有以下格式:

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
%matplotlib inline
# some plots
%matplotlib qt
# the interactive plot
%matplotlib inline
# the other plots

我在网上找到了很多不同的东西,但只有在这种组合中,它才能满足我的需要;)

正如错误类型所表明的那样,似乎还没有为笔记本电脑的后端实现
ginuput
,因为我记得我能够在Jupyter上使用ginput,但只有在浏览器外绘图时。现在我不知道从那时起发生了什么变化,但我不能再这样做了。此外,如果我在Juputer上键入plt.ginput(),我得到的是“”。这意味着ginput在某些方面是存在的,但它不起作用运行jupyter中的运行很好。该问题仅在使用
%matplotlib inline
%matplotlib notebook
时出现,因为这些后端显然尚未(尚未)实现
ginput
功能。因此,该问题可以用不同的方式表述:如何在Jupyter上的浏览器外生成绘图?我记得我只需键入“%matplotlib notebook”就可以完成这项工作,但现在有些事情发生了变化,绘图从未从浏览器中退出。根据错误类型,将后端设置为正常GUI(例如QT4、Tk等),似乎还没有为笔记本电脑后端实现
ginuput
,因为我记得我可以在Jupyter上使用ginput,但只有在浏览器外绘图时才使用。现在我不知道从那时起发生了什么变化,但我不能再这样做了。此外,如果我在Juputer上键入plt.ginput(),我得到的是“”。这意味着ginput在某些方面是存在的,但它不起作用运行jupyter中的运行很好。该问题仅在使用
%matplotlib inline
%matplotlib notebook
时出现,因为这些后端显然尚未(尚未)实现
ginput
功能。因此,该问题可以用不同的方式表述:如何在Jupyter上的浏览器外生成绘图?我记得我能做到的只是打字