2016-08-25 139 views
1

我是编程和Python的新手,所以请谅解,如果这是一个愚蠢的错误。Python 2.7:TypeError:'float'对象没有属性'__getitem__'

我试图运行一个脚本,我想基于对数正态分布的样本数据,然后绘制数据的直方图。

我不断收到错误

这里是我的代码:

import numpy as np 
import matplotlib.pyplot as plt 

a = 0.75 + (1.25 - 0.75)*np.random.lognormal(10000) 

[n,bins,patches] = plt.hist(a, bins=50, color = 'red',alpha = 0.5, normed = True) 

plt.show() 

错误:

Traceback (most recent call last): 
File "H:\UQ&M\GUI Demos\WIP\Tester.py", line 10, in <module> 
[n,bins,patches] = plt.hist(a, bins=50, color = 'red',alpha = 0.5, normed = True) 
File "C:\Program Files (x86)\python27\lib\site-packages\matplotlib\pyplot.py", line 2341, in hist 
ret = ax.hist(x, bins, range, normed, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, **kwargs) 
File "C:\Program Files (x86)\python27\lib\site-packages\matplotlib\axes.py", line 7650, in hist 
if isinstance(x, np.ndarray) or not iterable(x[0]): 
TypeError: 'float' object has no attribute '__getitem__' 

我已经在这里阅读过类似疑问的,但是我似乎无法找到一个解决方案。

您的专家建议将不胜感激。

预先感谢把你宝贵的时间寻找到这一点。

+3

'一== inf',一个简单的标量。 'hist(x,...)'需要一个序列作为第一个参数。您可能想要'a = 0.75 +(1.25 - 0.75)* np.random.lognormal(size = 10000)' – dhke

+0

@dhke:您可能想要将其作为答案 –

+0

@AndreaCorbellini Nah,印刷错误,近距离投票;) – dhke

回答

0

matplotlib API a应该是一个数组或序列,如果我就在你的代码,它是一个单一的数字不是一个数组

相关问题