首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中制作值的直方图

如何在Python中制作值的直方图
EN

Stack Overflow用户
提问于 2020-05-05 01:24:43
回答 2查看 48关注 0票数 0

我正在用Python编写代码(如下所示),我想生成一个直方图,显示宽度= 1的bin内的y值的频率。例如,有多少个y在6-7,7-8之间,等等。但是,绘图只包含y的最终值。有人知道我如何包含所有y值吗?提前谢谢你!

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

N = 10

for i in range(0,N):
    x = 1 + np.random.random()
    print("x = ", x)
    y = 2*(1 + 2*x)
    print("y = ", y)
    z = 4*y
    print("z = ", z)

h = [y]
plt.hist(h, bins = 10)
plt.show()
EN

回答 2

Stack Overflow用户

发布于 2020-05-05 01:30:30

要创建一个列表,请在循环之前生成一个空列表。然后在循环期间追加列表项。

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

#use print commands to check the type and content of your variables

N = 10
ys=[]  # empty list
for i in range(0,N):
    x = 1 + np.random.random()
    y = 2*(1 + 2*x)
    ys.append(y)


plt.hist(ys, bins = 10)
plt.show()

票数 2
EN

Stack Overflow用户

发布于 2020-05-05 01:41:28

类似于@list runner66的答案,但直接使用numpy数组,而不是循环遍历列表:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

N = 10
x = 1 + np.random.random(N)
y = 2*(1 + 2*x)

plt.hist(y, bins=4, range=(6,10))
plt.show()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61598040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档