gpt4 book ai didi

python - 在 matplotlib 直方图上绘制相对频率与绝对频率

转载 作者:太空宇宙 更新时间:2023-11-03 18:57:21 25 4
gpt4 key购买 nike

我知道一些类似的问题,但我已经尝试过这些代码,但它在我的环境中不起作用。所以我有一个很大的数据列表( float ),我想将其绘制为直方图。虽然我可以轻松绘制绝对频率,但我想绘制相对频率(纵坐标(即 y 轴)上的分数/百分比)。我的代码是:

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
#1 - n, bins, patches = ax.hist(zdata, bins=ceil(min-max), normed=1, cumulative=0)
#2 - n, bins, patches = ax.hist(zdata, weights=np.zeros_like(data) + 1. / data.size)
ax.set_xlabel('Atomic z coordinate', size=ceil(min-max))
ax.set_ylabel('Relative Frequency')
ax.legend
plt.show()

我注意到 python 要求 bin 计数为整数,但我知道我使用 70,因此很容易修复。我更紧迫的问题是,当我尝试在这段代码中注释掉的两个命令时,这两个命令都不起作用。情况 1 不会引发错误,但当我完成命令并调用 show() 时,该图不会出现。情况 2 引发 NameError 并提示它不知道“数据”是什么。我在其他问题中遵循了模板,但自己不确定“数据”是什么;我的值数组(列表)是 zdata。另外,bin和patch之间有区别吗?

我使用的是python 2.7.3,IDE是Spyder 2.1.11。非常感谢,如果这与过去的问题非常相似,我深表歉意。

最佳答案

命令np.zeros_like(data)意味着您将使用与数组data相同长度和数据类型的零填充数组。如果您想使用此命令,则需要定义一个名为 data 的数组(NameError 意味着您正在尝试使用尚 undefined variable 名称。 ),或者您可能想用 zdata 替换 data 因为 zdata 存在并且我猜您希望权重的长度与输入数据。

注意

更好的写法:

np.zeros_like(data) + 1. / data.size

就是这个

np.ones_like(data) / data.size

关于python - 在 matplotlib 直方图上绘制相对频率与绝对频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16990004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com