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

时间:2019-04-02 17:37:58

标签: 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

2 个答案:

答案 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']
  )
 );
}

?>

enter image description here

答案 1 :(得分:0)

如果只需要频率:

np.unique(data, return_counts=True)

如果您想使用y轴频率绘制直方图,只需使用density=False(默认设置)

但是可能因为您想与高斯分布进行比较,所以您想使用density=True