python - 如何在y轴上显示频率值?

标签 python python-3.x matplotlib

我想显示频率分布的直方图

import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt

data = [10,20,20,30,30,30,40,40,50,50]

mu, std = norm.fit(data)

plt.hist(data, bins='auto', density=True, alpha=1, color='navy')
plt.grid()

xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 10)
p = norm.pdf(x, mu, std)
plt.plot(x, p, 'k', linewidth=2)

plt.show()

我在 y 轴上得到未知数字。

我想获取值的频率。 例如:10的频率为1,20的频率为2。printscreen

最佳答案

您正在绘制 PDF,因此不会显示频率,而是显示每个数据值的概率。

我想您可能正在寻找类似的东西!

import numpy as np
import matplotlib.pyplot as plt

data = [10,20,20,30,30,30,40,40,50,50]
plt.hist(data, bins='auto', alpha=1)
plt.grid()
plt.plot(np.unique(data, return_counts=True)[0],np.unique(data, return_counts=True)[1])

enter image description here

关于python - 如何在y轴上显示频率值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55480625/

相关文章:

python-3.x - Pandas:计算列上组的中位数

python - 从文本文件中打印按整数排序的城市名称

python - python中的mpl_finance模块导入错误

python - 在 Pandas 中将两行加在一起形成一长行

python - 找到立方等于平方的数字对

python - 索引和列上的 pandas df.rename 并不总是有效

python - 如何在 imshow() 的颜色条上添加一条线

matplotlib - 情节 mpl_to_plotly 错误 : 'Spine' object has no attribute 'is_frame_like'

python - Perl 正则表达式与 Python 正则表达式非捕获似乎工作方式不同

python - Scrapy:使用 CloudFlare 抓取网站时出现 503 错误