我正在尝试使用以下方法生成和绘制随机数:
from numpy import random
import matplotlib.pyplot as plt
z = 15 + 2*random.randn(200) #200 elements, normal dist with mean = 15, sd = 2
plt.plot(z)
plt.show(z)
图表已绘制,但 Python (2.7.5) 卡住并且出现错误
Traceback (most recent call last):
File "G:\Stage 2 expt\e298\q1.py", line 25, in <module>
plt.show(z)
File "C:\Python27\lib\site-packages\matplotlib\pyplot.py", line 145, in show
_show(*args, **kw)
File "C:\Python27\lib\site-packages\matplotlib\backend_bases.py", line 90, in __call__
if block:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
当我像这样执行 for 循环时完全没问题:
from numpy import random
from pylab import plot,show
yvec = [] # set up an empty vector
for i in range(200): # want 200 numbers
yy = 25 + 3*random.randn() # normal dist with mean = 15, sd = 2
yvec.append(yy) # enter yy into vector
plot(yvec)
show(yvec)
有人可以澄清一下吗?
最佳答案
函数pylab.show
不接受列表或数组,它接受一个可选的 bool 值(当然不是您的数据数组)。第一个示例中的 numpy 数组无法隐式转换为 bool 值,从而引发错误。然而,第二个可以转换为 bool 值,如果非空,它将计算为 True
。
要修复此问题,只需调用不带任何参数的 show
即可。
关于python - 在 Python 中绘制随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21420709/