我想显示频率分布的直方图
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
答案 0 :(得分:2)
您正在绘制PDF,因此未显示频率,而是每个数据值的概率。
我认为您可能正在寻找类似的东西!
<?php
$connect = new PDO('mysql:host=localhost;dbname=marchingdb', 'root', '');
if(isset($_POST["title"]))
{
$query = "
INSERT INTO events
(title, start_event, end_event,user_id)
VALUES (:title, :start_event, :end_event, :user_id)
";
$statement = $connect->prepare($query);
$statement->execute(
array(
':title' => $_POST['title'],
':start_event' => $_POST['start'],
':end_event' => $_POST['end'],
':user_id' => $_POST['user_id']
)
);
}
?>
答案 1 :(得分:0)
如果只需要频率:
np.unique(data, return_counts=True)
如果您想使用y轴频率绘制直方图,只需使用density=False
(默认设置)
但是可能因为您想与高斯分布进行比较,所以您想使用density=True
。