Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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 matlotpib在重复显示曲面时出现递归错误_Python_Matplotlib - Fatal编程技术网

python matlotpib在重复显示曲面时出现递归错误

python matlotpib在重复显示曲面时出现递归错误,python,matplotlib,Python,Matplotlib,我使用matplotlib绘制曲面以显示一些三维数据。我使用“下一步”按钮滚动显示新数据的3d数据阵列。在大约43次滚动之后,我得到了一个递归错误,尽管没有明显的递归编程。此处更新了最小可再现示例(该示例不会滚动数据,但仍会再现错误: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import matplotlib.animation as animation

我使用matplotlib绘制曲面以显示一些三维数据。我使用“下一步”按钮滚动显示新数据的3d数据阵列。在大约43次滚动之后,我得到了一个递归错误,尽管没有明显的递归编程。此处更新了最小可再现示例(该示例不会滚动数据,但仍会再现错误:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.animation as animation
import matplotlib
from matplotlib import cm
import re
import time 
from threading import Thread
from matplotlib.widgets import Button


xsize=34
ysize=22
numDataLines = 0
#I realise the next 2 lines below are wrong but otherwise I get the wrong shape in use in plot_surface and contour3d
X = np.arange(0,ysize, 1)
Y = np.arange(0,xsize, 1) 
X,Y = np.meshgrid(X,Y)
currentFrameNumber = 0
zlines = []
zlines.append(np.reshape([0]*xsize*ysize, [xsize, ysize], 'C')) 

def display_plot(currentFrameNumber):
    Z = zlines[0]
    ax.clear()
    ax.set_zlim(0.0, 400.0)
    print "showing frame number ", currentFrameNumber
    ax.plot_surface(X, Y, Z, cmap="magma")
    plt.show() 

class Index(object):
    def next(self, event):
        display_plot(0)

fig = plt.figure()
#ax = plt.axes(projection='3d')
ax = fig.add_subplot(111, projection='3d')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z');

callback = Index()
axnext = plt.axes([0.81, 0.05, 0.09, 0.075])
bnext = Button(axnext, '>')
bnext.on_clicked(callback.next)
display_plot(0)


```
我得到这个错误:

Exception in Tkinter callback Traceback (most recent call last):   File "C:\Python27\lib\lib-tk\Tkinter.py", line 1541, in __call__
    return self.func(*args)   File "C:\Python27\lib\lib-tk\Tkinter.py", line 592, in callit
    func(*args)   File "C:\Python27\lib\site-packages\matplotlib\backends\_backend_tk.py", line 310, in idle_draw
    self.draw()   File "C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 12, in draw
    super(FigureCanvasTkAgg, self).draw()   File "C:\Python27\lib\site-packages\matplotlib\backends\backend_agg.py", line 437, in draw
    self.figure.draw(self.renderer)   File "C:\Python27\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)   File "C:\Python27\lib\site-packages\matplotlib\figure.py", line 1493, in draw
    renderer, self, artists, self.suppressComposite)   File "C:\Python27\lib\site-packages\matplotlib\image.py", line 141, in
_draw_list_compositing_images
    a.draw(renderer)   File "C:\Python27\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 298, in draw
    ax.draw(renderer)   File "C:\Python27\lib\site-packages\mpl_toolkits\mplot3d\axis3d.py", line 230, in draw
    majorTicks = self.get_major_ticks()   File "C:\Python27\lib\site-packages\mpl_toolkits\mplot3d\axis3d.py", line 148, in get_major_ticks
    ticks = maxis.XAxis.get_major_ticks(self, numticks)   File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 1396, in get_major_ticks
    numticks = len(self.get_major_locator()())   File "C:\Python27\lib\site-packages\matplotlib\ticker.py", line 1954, in
__call__
    return self.tick_values(vmin, vmax)   File "C:\Python27\lib\site-packages\matplotlib\ticker.py", line 1962, in tick_values
    locs = self._raw_ticks(vmin, vmax)   File "C:\Python27\lib\site-packages\matplotlib\ticker.py", line 1908, in
_raw_ticks
    nbins = np.clip(self.axis.get_tick_space(),   File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 2124, in get_tick_space
    tick = self._get_tick(True)   File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 1792, in
_get_tick
    return XTick(self.axes, 0, '', major=major, **tick_kw)   File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 176, in
__init__
    self.tick1line = self._get_tick1line()   File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 474, in
_get_tick1line
    markeredgewidth=self._width, zorder=self._zorder)   File "C:\Python27\lib\site-packages\matplotlib\lines.py", line 397, in
__init__
    self._marker = MarkerStyle(marker, fillstyle)   File "C:\Python27\lib\site-packages\matplotlib\markers.py", line 189, in
__init__
    self.set_marker(marker)   File "C:\Python27\lib\site-packages\matplotlib\markers.py", line 255, in set_marker
    elif (isinstance(marker, Sized) and len(marker) in (2, 3) and   File "C:\Python27\lib\abc.py", line 132, in __instancecheck__
    if subclass is not None and subclass in cls._abc_cache: RuntimeError: maximum recursion depth exceeded Traceback (most recent call last):   File "C:\Python27\lib\site-packages\matplotlib\cbook\__init__.py", line 387, in process
    proxy(*args, **kwargs)   File "C:\Python27\lib\site-packages\matplotlib\cbook\__init__.py", line 227, in __call__
    return mtd(*args, **kwargs)   File "C:\Python27\lib\site-packages\matplotlib\widgets.py", line 238, in
_motion
    self.ax.figure.canvas.draw()   File "C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 12, in draw
    super(FigureCanvasTkAgg, self).draw()   File "C:\Python27\lib\site-packages\matplotlib\backends\backend_agg.py", line 437, in draw
    self.figure.draw(self.renderer)   File "C:\Python27\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)   File "C:\Python27\lib\site-packages\matplotlib\figure.py", line 1493, in draw
    renderer, self, artists, self.suppressComposite)   File "C:\Python27\lib\site-packages\matplotlib\image.py", line 141, in
_draw_list_compositing_images
    a.draw(renderer)   File "C:\Python27\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 298, in draw
    ax.draw(renderer)   File "C:\Python27\lib\site-packages\mpl_toolkits\mplot3d\axis3d.py", line 230, in draw
    majorTicks = self.get_major_ticks()   File "C:\Python27\lib\site-packages\mpl_toolkits\mplot3d\axis3d.py", line 148, in get_major_ticks
    ticks = maxis.XAxis.get_major_ticks(self, numticks)   File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 1396, in get_major_ticks
    numticks = len(self.get_major_locator()())   File "C:\Python27\lib\site-packages\matplotlib\ticker.py", line 1954, in
__call__
    return self.tick_values(vmin, vmax)   File "C:\Python27\lib\site-packages\matplotlib\ticker.py", line 1962, in tick_values
    locs = self._raw_ticks(vmin, vmax)   File "C:\Python27\lib\site-packages\matplotlib\ticker.py", line 1908, in
_raw_ticks
    nbins = np.clip(self.axis.get_tick_space(),   File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 2124, in get_tick_space
    tick = self._get_tick(True)   File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 1792, in
_get_tick
    return XTick(self.axes, 0, '', major=major, **tick_kw)   File "C:\Python27\lib\site-packages\matplotlib\axis.py", line 102, in
__init__
    artist.Artist.__init__(self)   File "C:\Python27\lib\site-packages\matplotlib\artist.py", line 119, in
__init__
    self._sketch = rcParams['path.sketch']   File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 949, in
__getitem__
    val = dict.__getitem__(self, key) RuntimeError: maximum recursion depth exceeded in cmp
如果删除plt.show()命令,则不会得到错误。
我对python有点陌生,所以如果这是显而易见的,我深表歉意。

我们需要看到一个完整的回溯。我刚刚更新了一个最小的列表,其中重现了错误