tight_layout throw error: ValueError: max() arg is an empty sequence
tight_layout throw error: ValueError: max() arg is an empty sequence
我正在尝试在 python 中使用 plt.ion() 启用更新数字:
import numpy as np
import numpy.matlib
import matplotlib.pyplot as plt
plt.ion()
plt.close('all')
tmax =30
W = np.random.rand(6,100)
fig, ax = plt.subplots(2,3)
plt.show()
for t in range (1, tmax):
W = t * W
for ii in range(2):
for jj in range(3):
output = W[3*ii+jj,:].reshape((10,10),order = 'F')
ax[ii,jj].clear()
ax[ii,jj].imshow(output, interpolation='nearest')
plt.tight_layout()
plt.draw()
plt.pause(0.1)
plt.waitforbuttonpress()
运行 这将在控制台中显示空白数字并抛出错误:
Traceback (most recent call last):
File "", line 1, in
runfile('/Users/Alessi/Documents/Spyder/3240ass/comp.py', wdir='/Users/Alessi/Documents/Spyder/3240ass')
File
"/Users/Alessi/anaconda/lib/python3.5/site-packages/spyder/utils/site/sitecustomize.py",
line 866, in runfile
execfile(filename, namespace)
File
"/Users/Alessi/anaconda/lib/python3.5/site-packages/spyder/utils/site/sitecustomize.py",
line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/Users/Alessi/Documents/Spyder/3240ass/comp.py", line 27, in
plt.tight_layout()
File
"/Users/Alessi/anaconda/lib/python3.5/site-packages/matplotlib/pyplot.py",
line 1387, in tight_layout
fig.tight_layout(pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect)
File
"/Users/Alessi/anaconda/lib/python3.5/site-packages/matplotlib/figure.py",
line 1752, in tight_layout
rect=rect)
File
"/Users/Alessi/anaconda/lib/python3.5/site-packages/matplotlib/tight_layout.py",
line 322, in get_tight_layout_figure
max_nrows = max(nrows_list)
ValueError: max() arg is an empty sequence
ps.using 蟒蛇间谍
您不能在控制台中使用交互式更多 (ion
)。不幸的是,这个问题并不清楚你想要什么;但假设您想要显示带有动画情节的 window。一个简单的方法是 运行 IPython 控制台外的脚本。在 spyder 中,您将转到 Run/Configure(或按 F6)和 select "Execute in a new dedicated Python console".
现在脚本本身的问题是您首先调用 plt.show()
,它显示空子图。这必须删除。
显示动画的版本是
import numpy as np
import matplotlib.pyplot as plt
plt.close('all')
plt.ion()
tmax =30
fig, ax = plt.subplots(2,3)
for t in range (1, tmax):
W = np.random.rand(6,100)
for ii in range(2):
for jj in range(3):
output = W[3*ii+jj,:].reshape((10,10),order = 'F')
ax[ii,jj].clear()
ax[ii,jj].imshow(output, interpolation='nearest')
if t == 1:
plt.tight_layout()
plt.draw()
plt.pause(0.1)
plt.waitforbuttonpress()
我正在尝试在 python 中使用 plt.ion() 启用更新数字:
import numpy as np
import numpy.matlib
import matplotlib.pyplot as plt
plt.ion()
plt.close('all')
tmax =30
W = np.random.rand(6,100)
fig, ax = plt.subplots(2,3)
plt.show()
for t in range (1, tmax):
W = t * W
for ii in range(2):
for jj in range(3):
output = W[3*ii+jj,:].reshape((10,10),order = 'F')
ax[ii,jj].clear()
ax[ii,jj].imshow(output, interpolation='nearest')
plt.tight_layout()
plt.draw()
plt.pause(0.1)
plt.waitforbuttonpress()
运行 这将在控制台中显示空白数字并抛出错误:
Traceback (most recent call last):
File "", line 1, in runfile('/Users/Alessi/Documents/Spyder/3240ass/comp.py', wdir='/Users/Alessi/Documents/Spyder/3240ass')
File "/Users/Alessi/anaconda/lib/python3.5/site-packages/spyder/utils/site/sitecustomize.py", line 866, in runfile execfile(filename, namespace)
File "/Users/Alessi/anaconda/lib/python3.5/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile exec(compile(f.read(), filename, 'exec'), namespace)
File "/Users/Alessi/Documents/Spyder/3240ass/comp.py", line 27, in plt.tight_layout()
File "/Users/Alessi/anaconda/lib/python3.5/site-packages/matplotlib/pyplot.py", line 1387, in tight_layout fig.tight_layout(pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect)
File "/Users/Alessi/anaconda/lib/python3.5/site-packages/matplotlib/figure.py", line 1752, in tight_layout rect=rect)
File "/Users/Alessi/anaconda/lib/python3.5/site-packages/matplotlib/tight_layout.py", line 322, in get_tight_layout_figure max_nrows = max(nrows_list)
ValueError: max() arg is an empty sequence
ps.using 蟒蛇间谍
您不能在控制台中使用交互式更多 (ion
)。不幸的是,这个问题并不清楚你想要什么;但假设您想要显示带有动画情节的 window。一个简单的方法是 运行 IPython 控制台外的脚本。在 spyder 中,您将转到 Run/Configure(或按 F6)和 select "Execute in a new dedicated Python console".
现在脚本本身的问题是您首先调用 plt.show()
,它显示空子图。这必须删除。
显示动画的版本是
import numpy as np
import matplotlib.pyplot as plt
plt.close('all')
plt.ion()
tmax =30
fig, ax = plt.subplots(2,3)
for t in range (1, tmax):
W = np.random.rand(6,100)
for ii in range(2):
for jj in range(3):
output = W[3*ii+jj,:].reshape((10,10),order = 'F')
ax[ii,jj].clear()
ax[ii,jj].imshow(output, interpolation='nearest')
if t == 1:
plt.tight_layout()
plt.draw()
plt.pause(0.1)
plt.waitforbuttonpress()