【发布时间】:2016-08-25 09:26:46
【问题描述】:
我是编程和 Python 新手,如果这是一个愚蠢的错误,请原谅。
我正在尝试运行一个脚本,我想在其中基于对数正态分布生成样本数据,然后绘制该数据的直方图。
我总是出错
这是我的代码:
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__'
我在这里阅读了类似的查询,但我似乎找不到解决方案。
我们将非常感谢您的专家建议。
在此先感谢您抽出宝贵时间对此进行调查。
【问题讨论】:
-
a == inf,一个简单的标量。hist(x, ...)需要一个序列作为第一个参数。你可能想要a = 0.75 + (1.25 - 0.75)*np.random.lognormal(size=10000) -
@dhke:您可能想将其发布为答案
-
@AndreaCorbellini Nah,印刷错误,关闭投票;)
-
谢谢@dhke,它确实修复了错误。感谢您的宝贵帮助:-)
标签: python python-2.7 python-3.x numpy